Skip to content

Commit

Permalink
add datavalidation test and fixed struct bug issue qax-os#240
Browse files Browse the repository at this point in the history
  • Loading branch information
rentiansheng committed Sep 1, 2018
1 parent 0548852 commit 24a8d64
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 20 deletions.
32 changes: 14 additions & 18 deletions datavalidation.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ type DataValidationErrorStyle int
// Data validation error styles
const (
_ DataValidationErrorStyle = iota
DataValidationStyleStop
DataValidationStyleWarning
DataValidationStyleInformation
DataValidationErrorStyleStop
DataValidationErrorStyleWarning
DataValidationErrorStyleInformation
)

// Data validation error styles
Expand Down Expand Up @@ -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

}
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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) {

}
32 changes: 32 additions & 0 deletions datavalidation_test.go
Original file line number Diff line number Diff line change
@@ -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)
}
}
4 changes: 2 additions & 2 deletions xmlWorksheet.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit 24a8d64

Please sign in to comment.