Skip to content

Commit 24a8d64

Browse files
committed
add datavalidation test and fixed struct bug issue qax-os#240
1 parent 0548852 commit 24a8d64

File tree

3 files changed

+48
-20
lines changed

3 files changed

+48
-20
lines changed

datavalidation.go

+14-18
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ type DataValidationErrorStyle int
3333
// Data validation error styles
3434
const (
3535
_ DataValidationErrorStyle = iota
36-
DataValidationStyleStop
37-
DataValidationStyleWarning
38-
DataValidationStyleInformation
36+
DataValidationErrorStyleStop
37+
DataValidationErrorStyleWarning
38+
DataValidationErrorStyleInformation
3939
)
4040

4141
// Data validation error styles
@@ -71,16 +71,16 @@ func NewDataValidation(allowBlank bool) *DataValidation {
7171
}
7272

7373
// SetError set error notice
74-
func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg *string) {
75-
dd.Error = msg
76-
dd.ErrorTitle = title
74+
func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg string) {
75+
dd.Error = &msg
76+
dd.ErrorTitle = &title
7777
strStyle := styleStop
7878
switch style {
79-
case DataValidationStyleStop:
79+
case DataValidationErrorStyleStop:
8080
strStyle = styleStop
81-
case DataValidationStyleWarning:
81+
case DataValidationErrorStyleWarning:
8282
strStyle = styleWarning
83-
case DataValidationStyleInformation:
83+
case DataValidationErrorStyleInformation:
8484
strStyle = styleInformation
8585

8686
}
@@ -89,10 +89,10 @@ func (dd *DataValidation) SetError(style DataValidationErrorStyle, title, msg *s
8989
}
9090

9191
// SetInput set prompt notice
92-
func (dd *DataValidation) SetInput(title, msg *string) {
92+
func (dd *DataValidation) SetInput(title, msg string) {
9393
dd.ShowInputMessage = convBoolToStr(true)
94-
dd.PromptTitle = title
95-
dd.Prompt = msg
94+
dd.PromptTitle = &title
95+
dd.Prompt = &msg
9696
}
9797

9898
// SetDropList data validation list
@@ -109,7 +109,7 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid
109109
if dataValidationFormulaStrLen < len(dd.Formula1) || dataValidationFormulaStrLen < len(dd.Formula2) {
110110
return fmt.Errorf(dataValidationFormulaStrLenErr)
111111
}
112-
switch o {
112+
/*switch o {
113113
case DataValidationOperatorBetween:
114114
if f1 > f2 {
115115
tmp := formula1
@@ -122,7 +122,7 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid
122122
formula1 = formula2
123123
formula2 = tmp
124124
}
125-
}
125+
}*/
126126

127127
dd.Formula1 = formula1
128128
dd.Formula2 = formula2
@@ -190,7 +190,3 @@ func (f *File) AddDataValidation(sheet string, dv *DataValidation) {
190190
xlsx.DataValidations.DataValidation = append(xlsx.DataValidations.DataValidation, dv)
191191
xlsx.DataValidations.Count = len(xlsx.DataValidations.DataValidation)
192192
}
193-
194-
func (f *File) GetDataValidation(sheet, sqref string) {
195-
196-
}

datavalidation_test.go

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package excelize
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestDataValidation(t *testing.T) {
8+
xlsx := NewFile()
9+
10+
dvRange := NewDataValidation(true)
11+
dvRange.Sqref = "A1:B2"
12+
dvRange.SetRange(10, 20, DataValidationTypeWhole, DataValidationOperatorBetween)
13+
dvRange.SetError(DataValidationErrorStyleStop, "error title", "error body")
14+
xlsx.AddDataValidation("Sheet1", dvRange)
15+
16+
dvRange = NewDataValidation(true)
17+
dvRange.Sqref = "A3:B4"
18+
dvRange.SetRange(10, 20, DataValidationTypeWhole, DataValidationOperatorGreaterThan)
19+
dvRange.SetInput("input title", "input body")
20+
xlsx.AddDataValidation("Sheet1", dvRange)
21+
22+
dvRange = NewDataValidation(true)
23+
dvRange.Sqref = "A5:B6"
24+
dvRange.SetDropList([]string{"1", "2", "3"})
25+
xlsx.AddDataValidation("Sheet1", dvRange)
26+
27+
// Test write file to given path.
28+
err := xlsx.SaveAs("./test/Bookdatavalition.xlsx")
29+
if err != nil {
30+
t.Error(err)
31+
}
32+
}

xmlWorksheet.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type xlsxWorksheet struct {
1818
MergeCells *xlsxMergeCells `xml:"mergeCells"`
1919
PhoneticPr *xlsxPhoneticPr `xml:"phoneticPr"`
2020
ConditionalFormatting []*xlsxConditionalFormatting `xml:"conditionalFormatting"`
21-
DataValidations *xlsxDataValidations `xml:"dataValidations"`
21+
DataValidations *xlsxDataValidations `xml:"dataValidations,omitempty"`
2222
Hyperlinks *xlsxHyperlinks `xml:"hyperlinks"`
2323
PrintOptions *xlsxPrintOptions `xml:"printOptions"`
2424
PageMargins *xlsxPageMargins `xml:"pageMargins"`
@@ -298,7 +298,7 @@ type xlsxDataValidations struct {
298298
DisablePrompts bool `xml:"disablePrompts,attr,omitempty"`
299299
XWindow int `xml:"xWindow,attr,omitempty"`
300300
YWindow int `xml:"yWindow,attr,omitempty"`
301-
DataValidation []*DataValidation `xml:"dataValidation,innerxml"`
301+
DataValidation []*DataValidation `xml:"dataValidation"`
302302
}
303303

304304
type DataValidation struct {

0 commit comments

Comments
 (0)