diff options
author | z.hua <276675879@qq.com> | 2022-06-15 17:28:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-15 17:28:59 +0800 |
commit | 5beeeef570e0d5a09de546dfe369a0f3753cf709 (patch) | |
tree | cd1d4fdd4172e589619018b2e06a03842ad2826d | |
parent | 7f570c74f8623aec6e8f89ff3701f28c3a256ffe (diff) |
This closes #1254, `DeleteDataValidation` support delete all data validations in the worksheet
-rw-r--r-- | datavalidation.go | 11 | ||||
-rw-r--r-- | datavalidation_test.go | 4 |
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) } |