diff options
author | rentiansheng <rentiansheng@163.com> | 2018-09-01 19:38:30 +0800 |
---|---|---|
committer | rentiansheng <rentiansheng@163.com> | 2018-09-01 19:38:30 +0800 |
commit | 24a8d64f939afb5c15b04e552b3d3b7046daa851 (patch) | |
tree | f6e84297e8e9cac027c4e0da91c39076c83948e1 | |
parent | 054885219000f5c94c59fdf989e7c2110a023164 (diff) |
add datavalidation test and fixed struct bug issue #240
-rw-r--r-- | datavalidation.go | 32 | ||||
-rw-r--r-- | datavalidation_test.go | 32 | ||||
-rw-r--r-- | xmlWorksheet.go | 4 |
3 files changed, 48 insertions, 20 deletions
diff --git a/datavalidation.go b/datavalidation.go index 5dae7c9..f1db732 100644 --- a/datavalidation.go +++ b/datavalidation.go @@ -33,9 +33,9 @@ type DataValidationErrorStyle int // Data validation error styles const ( _ DataValidationErrorStyle = iota - DataValidationStyleStop - DataValidationStyleWarning - DataValidationStyleInformation + DataValidationErrorStyleStop + DataValidationErrorStyleWarning + DataValidationErrorStyleInformation ) // Data validation error styles @@ -71,16 +71,16 @@ func NewDataValidation(allowBlank bool) *DataValidation { } // SetError set error notice -func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg *string) { - dd.Error = msg - dd.ErrorTitle = title +func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg string) { + dd.Error = &msg + dd.ErrorTitle = &title strStyle := styleStop switch style { - case DataValidationStyleStop: + case DataValidationErrorStyleStop: strStyle = styleStop - case DataValidationStyleWarning: + case DataValidationErrorStyleWarning: strStyle = styleWarning - case DataValidationStyleInformation: + case DataValidationErrorStyleInformation: strStyle = styleInformation } @@ -89,10 +89,10 @@ func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg *s } // SetInput set prompt notice -func (dd *DataValidation) SetInput(title, msg *string) { +func (dd *DataValidation) SetInput(title, msg string) { dd.ShowInputMessage = convBoolToStr(true) - dd.PromptTitle = title - dd.Prompt = msg + dd.PromptTitle = &title + dd.Prompt = &msg } // SetDropList data validation list @@ -109,7 +109,7 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid if dataValidationFormulaStrLen < len(dd.Formula1) || dataValidationFormulaStrLen < len(dd.Formula2) { return fmt.Errorf(dataValidationFormulaStrLenErr) } - switch o { + /*switch o { case DataValidationOperatorBetween: if f1 > f2 { tmp := formula1 @@ -122,7 +122,7 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid formula1 = formula2 formula2 = tmp } - } + }*/ dd.Formula1 = formula1 dd.Formula2 = formula2 @@ -190,7 +190,3 @@ func (f *File) AddDataValidation(sheet string, dv *DataValidation) { xlsx.DataValidations.DataValidation = append(xlsx.DataValidations.DataValidation, dv) xlsx.DataValidations.Count = len(xlsx.DataValidations.DataValidation) } - -func (f *File) GetDataValidation(sheet, sqref string) { - -} diff --git a/datavalidation_test.go b/datavalidation_test.go new file mode 100644 index 0000000..718131f --- /dev/null +++ b/datavalidation_test.go @@ -0,0 +1,32 @@ +package excelize + +import ( + "testing" +) + +func TestDataValidation(t *testing.T) { + xlsx := NewFile() + + dvRange := NewDataValidation(true) + dvRange.Sqref = "A1:B2" + dvRange.SetRange(10, 20, DataValidationTypeWhole, DataValidationOperatorBetween) + dvRange.SetError(DataValidationErrorStyleStop, "error title", "error body") + xlsx.AddDataValidation("Sheet1", dvRange) + + dvRange = NewDataValidation(true) + dvRange.Sqref = "A3:B4" + dvRange.SetRange(10, 20, DataValidationTypeWhole, DataValidationOperatorGreaterThan) + dvRange.SetInput("input title", "input body") + xlsx.AddDataValidation("Sheet1", dvRange) + + dvRange = NewDataValidation(true) + dvRange.Sqref = "A5:B6" + dvRange.SetDropList([]string{"1", "2", "3"}) + xlsx.AddDataValidation("Sheet1", dvRange) + + // Test write file to given path. + err := xlsx.SaveAs("./test/Bookdatavalition.xlsx") + if err != nil { + t.Error(err) + } +} diff --git a/xmlWorksheet.go b/xmlWorksheet.go index f2ac9fb..25e3904 100644 --- a/xmlWorksheet.go +++ b/xmlWorksheet.go @@ -18,7 +18,7 @@ type xlsxWorksheet struct { MergeCells *xlsxMergeCells `xml:"mergeCells"` PhoneticPr *xlsxPhoneticPr `xml:"phoneticPr"` ConditionalFormatting []*xlsxConditionalFormatting `xml:"conditionalFormatting"` - DataValidations *xlsxDataValidations `xml:"dataValidations"` + DataValidations *xlsxDataValidations `xml:"dataValidations,omitempty"` Hyperlinks *xlsxHyperlinks `xml:"hyperlinks"` PrintOptions *xlsxPrintOptions `xml:"printOptions"` PageMargins *xlsxPageMargins `xml:"pageMargins"` @@ -298,7 +298,7 @@ type xlsxDataValidations struct { DisablePrompts bool `xml:"disablePrompts,attr,omitempty"` XWindow int `xml:"xWindow,attr,omitempty"` YWindow int `xml:"yWindow,attr,omitempty"` - DataValidation []*DataValidation `xml:"dataValidation,innerxml"` + DataValidation []*DataValidation `xml:"dataValidation"` } type DataValidation struct { |