summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrentiansheng <rentiansheng@163.com>2018-09-01 19:38:30 +0800
committerrentiansheng <rentiansheng@163.com>2018-09-01 19:38:30 +0800
commit24a8d64f939afb5c15b04e552b3d3b7046daa851 (patch)
treef6e84297e8e9cac027c4e0da91c39076c83948e1
parent054885219000f5c94c59fdf989e7c2110a023164 (diff)
add datavalidation test and fixed struct bug issue #240
-rw-r--r--datavalidation.go32
-rw-r--r--datavalidation_test.go32
-rw-r--r--xmlWorksheet.go4
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 {