forked from p30928647/excelize
add datavalidation test and fixed struct bug issue #240
This commit is contained in:
parent
0548852190
commit
24a8d64f93
|
@ -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) {
|
||||
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue