Skip to content

Commit

Permalink
Merge pull request #270 from rentiansheng/valiationdata
Browse files Browse the repository at this point in the history
data validation drop-down list use sqref cell  issue #268
  • Loading branch information
xuri committed Sep 6, 2018
2 parents 2da107d + 93cbafb commit 99c9d04
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
12 changes: 12 additions & 0 deletions datavalidation.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,18 @@ func (dd *DataValidation) SetRange(f1, f2 int, t DataValidationType, o DataValid
return nil
}

// SetSqrefDropList data validation list with current sheet cell rang
func (dd *DataValidation) SetSqrefDropList(sqref string, isCurrentSheet bool) error {
if isCurrentSheet {
dd.Formula1 = sqref
dd.Type = convDataValidationType(typeList)
return nil
}

//isCurrentSheet = false Cross-sheet sqref cell use extLst xml node unrealized
return fmt.Errorf("Cross-sheet sqref cell are not supported")
}

// SetSqref provides function to set data validation range in drop list.
func (dd *DataValidation) SetSqref(sqref string) {
if dd.Sqref == "" {
Expand Down
8 changes: 8 additions & 0 deletions datavalidation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ func TestDataValidation(t *testing.T) {
dvRange.SetDropList([]string{"1", "2", "3"})
xlsx.AddDataValidation("Sheet1", dvRange)

xlsx.SetCellStr("Sheet1", "E1", "E1")
xlsx.SetCellStr("Sheet1", "E2", "E2")
xlsx.SetCellStr("Sheet1", "E3", "E3")
dvRange = NewDataValidation(true)
dvRange.Sqref = "A7:B8"
dvRange.SetSqrefDropList("$E$1:$E$3", true)
xlsx.AddDataValidation("Sheet1", dvRange)

// Test write file to given path.
err := xlsx.SaveAs("./test/Book_data_validation.xlsx")
if err != nil {
Expand Down

0 comments on commit 99c9d04

Please sign in to comment.