forked from tealeg/xlsx
-
Notifications
You must be signed in to change notification settings - Fork 3
/
datavalidation_test.go
195 lines (161 loc) · 6.07 KB
/
datavalidation_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
package xlsx
import (
"fmt"
"testing"
)
func TestDataValidation(t *testing.T) {
var file *File
var sheet *Sheet
var row *Row
var cell *Cell
var err error
var title string = "cell"
var msg string = "cell msg"
file = NewFile()
sheet, err = file.AddSheet("Sheet1")
if err != nil {
fmt.Printf(err.Error())
}
row = sheet.AddRow()
cell = row.AddCell()
cell.Value = "a1"
dd := NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"a1", "a2", "a3"})
dd.SetInput(&title, &msg)
cell.SetDataValidation(dd)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"c1", "c2", "c3"})
title = "col c"
dd.SetInput(&title, &msg)
sheet.Col(2).SetDataValidation(dd, 0, 0)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"d", "d1", "d2"})
title = "col d range"
dd.SetInput(&title, &msg)
sheet.Col(3).SetDataValidation(dd, 3, 7)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"e1", "e2", "e3"})
title = "col e start 3"
dd.SetInput(&title, &msg)
sheet.Col(4).SetDataValidationWithStart(dd, 1)
index := 5
rowIndex := 1
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(15, 4, DataValidationTypeTextLeng, DataValidationOperatorBetween)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorGreaterThanOrEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorGreaterThan)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorLessThan)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorLessThanOrEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorNotEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeTextLeng, DataValidationOperatorNotBetween)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
rowIndex++
index = 5
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(4, 15, DataValidationTypeWhole, DataValidationOperatorBetween)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorGreaterThanOrEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorGreaterThan)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorLessThan)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorLessThanOrEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 1, DataValidationTypeWhole, DataValidationOperatorNotEqual)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetRange(10, 50, DataValidationTypeWhole, DataValidationOperatorNotBetween)
sheet.Cell(rowIndex, index).SetDataValidation(dd)
index++
if err != nil {
fmt.Printf(err.Error())
}
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"1", "2", "4"})
dd1 := NewXlsxCellDataValidation(true, true, true)
dd1.SetDropList([]string{"11", "22", "44"})
dd2 := NewXlsxCellDataValidation(true, true, true)
dd2.SetDropList([]string{"111", "222", "444"})
sheet.Col(12).SetDataValidation(dd, 2, 10)
sheet.Col(12).SetDataValidation(dd1, 3, 4)
sheet.Col(12).SetDataValidation(dd2, 5, 7)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"1", "2", "4"})
dd1 = NewXlsxCellDataValidation(true, true, true)
dd1.SetDropList([]string{"11", "22", "44"})
sheet.Col(13).SetDataValidation(dd, 2, 10)
sheet.Col(13).SetDataValidation(dd1, 1, 2)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"1", "2", "4"})
dd1 = NewXlsxCellDataValidation(true, true, true)
dd1.SetDropList([]string{"11", "22", "44"})
sheet.Col(14).SetDataValidation(dd, 2, 10)
sheet.Col(14).SetDataValidation(dd1, 1, 5)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"1", "2", "4"})
dd1 = NewXlsxCellDataValidation(true, true, true)
dd1.SetDropList([]string{"11", "22", "44"})
sheet.Col(15).SetDataValidation(dd, 2, 10)
sheet.Col(15).SetDataValidation(dd1, 1, 10)
dd = NewXlsxCellDataValidation(true, true, true)
dd.SetDropList([]string{"1", "2", "4"})
dd1 = NewXlsxCellDataValidation(true, true, true)
dd1.SetDropList([]string{"11", "22", "44"})
dd2 = NewXlsxCellDataValidation(true, true, true)
dd2.SetDropList([]string{"111", "222", "444"})
sheet.Col(16).SetDataValidation(dd, 10, 20)
sheet.Col(16).SetDataValidation(dd1, 2, 4)
sheet.Col(16).SetDataValidation(dd2, 21, 30)
file.Save("datavalidation.xlsx")
}
func TestReadDataValidation(t *testing.T) {
file, err := OpenFile("datavalidation.xlsx")
if nil != err {
t.Errorf(err.Error())
return
}
err = file.Save("datavalidation_read.xlsx")
if nil != err {
t.Errorf(err.Error())
return
}
}