summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxuri <xuri.me@gmail.com>2018-09-06 20:10:00 +0800
committerGitHub <noreply@github.com>2018-09-06 20:10:00 +0800
commit99c9d04f67c0c835b5d884ac229b1883afbb9d03 (patch)
tree6629da7fba2e0248e9097064550707d672692fbc
parent2da107d3b20a5561d311466b7b2cb91170885f9f (diff)
parent93cbafb0e2ff5df0236d543650712cd175cd789d (diff)
Merge pull request #270 from rentiansheng/valiationdata
data validation drop-down list use sqref cell issue #268
-rw-r--r--datavalidation.go12
-rw-r--r--datavalidation_test.go8
2 files changed, 20 insertions, 0 deletions
diff --git a/datavalidation.go b/datavalidation.go
index 914e877..010615c 100644
--- a/datavalidation.go
+++ b/datavalidation.go
@@ -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 == "" {
diff --git a/datavalidation_test.go b/datavalidation_test.go
index 32f9059..f3db81c 100644
--- a/datavalidation_test.go
+++ b/datavalidation_test.go
@@ -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 {