summaryrefslogtreecommitdiff
path: root/datavalidation.go
diff options
context:
space:
mode:
Diffstat (limited to 'datavalidation.go')
-rw-r--r--datavalidation.go34
1 files changed, 29 insertions, 5 deletions
diff --git a/datavalidation.go b/datavalidation.go
index 8b95b40..1aeb1dc 100644
--- a/datavalidation.go
+++ b/datavalidation.go
@@ -228,14 +228,38 @@ func convDataValidationOperatior(o DataValidationOperator) string {
// err = f.AddDataValidation("Sheet1", dvRange)
//
func (f *File) AddDataValidation(sheet string, dv *DataValidation) error {
- xlsx, err := f.workSheetReader(sheet)
+ ws, err := f.workSheetReader(sheet)
if err != nil {
return err
}
- if nil == xlsx.DataValidations {
- xlsx.DataValidations = new(xlsxDataValidations)
+ if nil == ws.DataValidations {
+ ws.DataValidations = new(xlsxDataValidations)
}
- xlsx.DataValidations.DataValidation = append(xlsx.DataValidations.DataValidation, dv)
- xlsx.DataValidations.Count = len(xlsx.DataValidations.DataValidation)
+ ws.DataValidations.DataValidation = append(ws.DataValidations.DataValidation, dv)
+ ws.DataValidations.Count = len(ws.DataValidations.DataValidation)
return err
}
+
+// DeleteDataValidation delete data validation by given worksheet name and
+// reference sequence.
+func (f *File) DeleteDataValidation(sheet, sqref string) error {
+ ws, err := f.workSheetReader(sheet)
+ if err != nil {
+ return err
+ }
+ if ws.DataValidations == nil {
+ return nil
+ }
+ dv := ws.DataValidations
+ for i := 0; i < len(dv.DataValidation); i++ {
+ if dv.DataValidation[i].Sqref == sqref {
+ dv.DataValidation = append(dv.DataValidation[:i], dv.DataValidation[i+1:]...)
+ i--
+ }
+ }
+ dv.Count = len(dv.DataValidation)
+ if dv.Count == 0 {
+ ws.DataValidations = nil
+ }
+ return nil
+}