@@ -228,14 +228,38 @@ func convDataValidationOperatior(o DataValidationOperator) string {
228
228
// err = f.AddDataValidation("Sheet1", dvRange)
229
229
//
230
230
func (f * File ) AddDataValidation (sheet string , dv * DataValidation ) error {
231
- xlsx , err := f .workSheetReader (sheet )
231
+ ws , err := f .workSheetReader (sheet )
232
232
if err != nil {
233
233
return err
234
234
}
235
- if nil == xlsx .DataValidations {
236
- xlsx .DataValidations = new (xlsxDataValidations )
235
+ if nil == ws .DataValidations {
236
+ ws .DataValidations = new (xlsxDataValidations )
237
237
}
238
- xlsx .DataValidations .DataValidation = append (xlsx .DataValidations .DataValidation , dv )
239
- xlsx .DataValidations .Count = len (xlsx .DataValidations .DataValidation )
238
+ ws .DataValidations .DataValidation = append (ws .DataValidations .DataValidation , dv )
239
+ ws .DataValidations .Count = len (ws .DataValidations .DataValidation )
240
240
return err
241
241
}
242
+
243
+ // DeleteDataValidation delete data validation by given worksheet name and
244
+ // reference sequence.
245
+ func (f * File ) DeleteDataValidation (sheet , sqref string ) error {
246
+ ws , err := f .workSheetReader (sheet )
247
+ if err != nil {
248
+ return err
249
+ }
250
+ if ws .DataValidations == nil {
251
+ return nil
252
+ }
253
+ dv := ws .DataValidations
254
+ for i := 0 ; i < len (dv .DataValidation ); i ++ {
255
+ if dv .DataValidation [i ].Sqref == sqref {
256
+ dv .DataValidation = append (dv .DataValidation [:i ], dv .DataValidation [i + 1 :]... )
257
+ i --
258
+ }
259
+ }
260
+ dv .Count = len (dv .DataValidation )
261
+ if dv .Count == 0 {
262
+ ws .DataValidations = nil
263
+ }
264
+ return nil
265
+ }
0 commit comments