From 72701e89c7145f9d08a79c93040e232b2875c855 Mon Sep 17 00:00:00 2001 From: xuri Date: Sat, 4 May 2019 00:10:11 +0800 Subject: Fix structs fields definition errors and keep double quotes in data validation formula --- datavalidation.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'datavalidation.go') diff --git a/datavalidation.go b/datavalidation.go index 8fb9623..56b96fd 100644 --- a/datavalidation.go +++ b/datavalidation.go @@ -112,7 +112,7 @@ func (dd *DataValidation) SetDropList(keys []string) error { if dataValidationFormulaStrLen < len(formula) { return fmt.Errorf(dataValidationFormulaStrLenErr) } - dd.Formula1 = formula + dd.Formula1 = fmt.Sprintf("%s", formula) dd.Type = convDataValidationType(typeList) return nil } @@ -121,12 +121,12 @@ func (dd *DataValidation) SetDropList(keys []string) error { func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValidationOperator) error { formula1 := fmt.Sprintf("%d", f1) formula2 := fmt.Sprintf("%d", f2) - if dataValidationFormulaStrLen < len(dd.Formula1) || dataValidationFormulaStrLen < len(dd.Formula2) { + if dataValidationFormulaStrLen+21 < len(dd.Formula1) || dataValidationFormulaStrLen+21 < len(dd.Formula2) { return fmt.Errorf(dataValidationFormulaStrLenErr) } - dd.Formula1 = formula1 - dd.Formula2 = formula2 + dd.Formula1 = fmt.Sprintf("%s", formula1) + dd.Formula2 = fmt.Sprintf("%s", formula2) dd.Type = convDataValidationType(t) dd.Operator = convDataValidationOperatior(o) return nil -- cgit v1.2.1 From c1357ee58fb7478645fa22adc7a5905e86c1f7c1 Mon Sep 17 00:00:00 2001 From: xuri Date: Mon, 22 Jul 2019 22:36:44 +0800 Subject: Fix invalid formula in data validation drop list --- datavalidation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'datavalidation.go') diff --git a/datavalidation.go b/datavalidation.go index 56b96fd..209204a 100644 --- a/datavalidation.go +++ b/datavalidation.go @@ -141,12 +141,12 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid // // dvRange := excelize.NewDataValidation(true) // dvRange.Sqref = "A7:B8" -// dvRange.SetSqrefDropList("E1:E3", true) +// dvRange.SetSqrefDropList("$E$1:$E$3", true) // f.AddDataValidation("Sheet1", dvRange) // func (dd *DataValidation) SetSqrefDropList(sqref string, isCurrentSheet bool) error { if isCurrentSheet { - dd.Formula1 = sqref + dd.Formula1 = fmt.Sprintf("%s", sqref) dd.Type = convDataValidationType(typeList) return nil } -- cgit v1.2.1 From 9c70d0ac868f66badf2663cc7b4b3c46d5411131 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 11 Aug 2019 00:36:14 +0800 Subject: Documentation updated, Go 1.10+ required --- datavalidation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'datavalidation.go') diff --git a/datavalidation.go b/datavalidation.go index 209204a..2499035 100644 --- a/datavalidation.go +++ b/datavalidation.go @@ -5,7 +5,7 @@ // Package excelize providing a set of functions that allow you to write to // and read from XLSX files. Support reads and writes XLSX file generated by // Microsoft Excelâ„¢ 2007 and later. Support save file without losing original -// charts of XLSX. This library needs Go version 1.8 or later. +// charts of XLSX. This library needs Go version 1.10 or later. package excelize -- cgit v1.2.1 From 09485b3f9f0aefc58d51462aed65c2416205c591 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 29 Dec 2019 16:02:31 +0800 Subject: Improve code coverage unit tests --- datavalidation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'datavalidation.go') diff --git a/datavalidation.go b/datavalidation.go index 2499035..8b95b40 100644 --- a/datavalidation.go +++ b/datavalidation.go @@ -1,4 +1,4 @@ -// Copyright 2016 - 2019 The excelize Authors. All rights reserved. Use of +// Copyright 2016 - 2020 The excelize Authors. All rights reserved. Use of // this source code is governed by a BSD-style license that can be found in // the LICENSE file. // -- cgit v1.2.1 From 6ab5b991e47e7fa9e9370da93404adaf04cba34a Mon Sep 17 00:00:00 2001 From: xuri Date: Fri, 13 Mar 2020 00:48:16 +0800 Subject: Resolve #348, support delete Data Validation --- datavalidation.go | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'datavalidation.go') 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 +} -- cgit v1.2.1