datavalidation_test.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. file.Save("datavalidation.xlsx")
  113. }