summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorz.hua <276675879@qq.com>2022-06-15 17:28:59 +0800
committerGitHub <noreply@github.com>2022-06-15 17:28:59 +0800
commit5beeeef570e0d5a09de546dfe369a0f3753cf709 (patch)
treecd1d4fdd4172e589619018b2e06a03842ad2826d
parent7f570c74f8623aec6e8f89ff3701f28c3a256ffe (diff)
This closes #1254, `DeleteDataValidation` support delete all data validations in the worksheet
-rw-r--r--datavalidation.go11
-rw-r--r--datavalidation_test.go4
2 files changed, 12 insertions, 3 deletions
diff --git a/datavalidation.go b/datavalidation.go
index 4df2c50..1b06b6a 100644
--- a/datavalidation.go
+++ b/datavalidation.go
@@ -262,8 +262,9 @@ func (f *File) AddDataValidation(sheet string, dv *DataValidation) error {
}
// DeleteDataValidation delete data validation by given worksheet name and
-// reference sequence.
-func (f *File) DeleteDataValidation(sheet, sqref string) error {
+// reference sequence. All data validations in the worksheet will be deleted
+// if not specify reference sequence parameter.
+func (f *File) DeleteDataValidation(sheet string, sqref ...string) error {
ws, err := f.workSheetReader(sheet)
if err != nil {
return err
@@ -271,7 +272,11 @@ func (f *File) DeleteDataValidation(sheet, sqref string) error {
if ws.DataValidations == nil {
return nil
}
- delCells, err := f.flatSqref(sqref)
+ if sqref == nil {
+ ws.DataValidations = nil
+ return nil
+ }
+ delCells, err := f.flatSqref(sqref[0])
if err != nil {
return err
}
diff --git a/datavalidation_test.go b/datavalidation_test.go
index 9ef11dc..80cbf59 100644
--- a/datavalidation_test.go
+++ b/datavalidation_test.go
@@ -171,4 +171,8 @@ func TestDeleteDataValidation(t *testing.T) {
// Test delete data validation on no exists worksheet.
assert.EqualError(t, f.DeleteDataValidation("SheetN", "A1:B2"), "sheet SheetN is not exist")
+
+ // Test delete all data validations in the worksheet
+ assert.NoError(t, f.DeleteDataValidation("Sheet1"))
+ assert.Nil(t, ws.(*xlsxWorksheet).DataValidations)
}