datavalidation_test.go 6.1 KB

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