excel_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package common
  2. import (
  3. "fmt"
  4. "os"
  5. "testing"
  6. )
  7. func TestNewWriter360Excel(t *testing.T) {
  8. sheet := [][]string{
  9. {"大小", "...", "2020-01-02 10:11:46"},
  10. {"a bc", "</.<", "xxxxx"},
  11. {"b zcv ", "...", "/.. .."},
  12. }
  13. excel := NewWriter360Excel()
  14. err := excel.WriteSheet("中文1", []string{"中文1", "中文2", "中文3"}, func(r Row) (hasNext bool) {
  15. if len(sheet) == 0 {
  16. return false
  17. }
  18. for _, elem := range sheet[r.RowIndex()] {
  19. r.Write(elem)
  20. }
  21. return r.RowIndex() < len(sheet)-1
  22. })
  23. if err != nil {
  24. t.Fatal(err)
  25. }
  26. err = excel.WriteSheet("中文2", []string{"h1", "h2", "h3"}, func(r Row) (hasNext bool) {
  27. if len(sheet) == 0 {
  28. return false
  29. }
  30. for _, elem := range sheet[r.RowIndex()] {
  31. r.Write(elem)
  32. }
  33. return r.RowIndex() < len(sheet)-1
  34. })
  35. if err != nil {
  36. t.Fatal(err)
  37. }
  38. file, err := os.OpenFile("/data/test/new.xlsx", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. defer file.Close()
  43. err = excel.FlushWrite(file)
  44. if err != nil {
  45. t.Fatal(err)
  46. }
  47. }
  48. func TestNewReader360Excel(t *testing.T) {
  49. file, err := os.OpenFile("/data/test/new.xlsx", os.O_RDONLY, 0)
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. defer file.Close()
  54. excel, err := NewReader360Excel(file)
  55. if err != nil {
  56. t.Fatal(err)
  57. }
  58. {
  59. strings, err := excel.ReadSheet("中文1")
  60. if err != nil {
  61. t.Fatal(err)
  62. }
  63. for _, row := range strings {
  64. for _, col := range row {
  65. fmt.Printf("%v\t", col)
  66. }
  67. fmt.Println()
  68. }
  69. }
  70. {
  71. strings, err := excel.ReadSheet("中文2")
  72. if err != nil {
  73. t.Fatal(err)
  74. }
  75. for _, row := range strings {
  76. for _, col := range row {
  77. fmt.Printf("%v\t", col)
  78. }
  79. fmt.Println()
  80. }
  81. }
  82. }