sheet_test.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package excelize_test
  2. import (
  3. "fmt"
  4. "testing"
  5. "github.com/360EntSecGroup-Skylar/excelize"
  6. "github.com/mohae/deepcopy"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func ExampleFile_SetPageLayout() {
  10. xl := excelize.NewFile()
  11. const sheet = "Sheet1"
  12. if err := xl.SetPageLayout(
  13. "Sheet1",
  14. excelize.PageLayoutOrientation(excelize.OrientationLandscape),
  15. ); err != nil {
  16. panic(err)
  17. }
  18. // Output:
  19. }
  20. func ExampleFile_GetPageLayout() {
  21. xl := excelize.NewFile()
  22. const sheet = "Sheet1"
  23. var (
  24. orientation excelize.PageLayoutOrientation
  25. )
  26. if err := xl.GetPageLayout("Sheet1", &orientation); err != nil {
  27. panic(err)
  28. }
  29. fmt.Println("Defaults:")
  30. fmt.Printf("- orientation: %q\n", orientation)
  31. // Output:
  32. // Defaults:
  33. // - orientation: "portrait"
  34. }
  35. func TestPageLayoutOption(t *testing.T) {
  36. const sheet = "Sheet1"
  37. testData := []struct {
  38. container excelize.PageLayoutOptionPtr
  39. nonDefault excelize.PageLayoutOption
  40. }{
  41. {new(excelize.PageLayoutOrientation), excelize.PageLayoutOrientation(excelize.OrientationLandscape)},
  42. }
  43. for i, test := range testData {
  44. t.Run(fmt.Sprintf("TestData%d", i), func(t *testing.T) {
  45. opt := test.nonDefault
  46. t.Logf("option %T", opt)
  47. def := deepcopy.Copy(test.container).(excelize.PageLayoutOptionPtr)
  48. val1 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr)
  49. val2 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr)
  50. xl := excelize.NewFile()
  51. // Get the default value
  52. if !assert.NoError(t, xl.GetPageLayout(sheet, def), opt) {
  53. t.FailNow()
  54. }
  55. // Get again and check
  56. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  57. t.FailNow()
  58. }
  59. if !assert.Equal(t, val1, def, opt) {
  60. t.FailNow()
  61. }
  62. // Set the same value
  63. if !assert.NoError(t, xl.SetPageLayout(sheet, val1), opt) {
  64. t.FailNow()
  65. }
  66. // Get again and check
  67. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  68. t.FailNow()
  69. }
  70. if !assert.Equal(t, val1, def, "%T: value should not have changed", opt) {
  71. t.FailNow()
  72. }
  73. // Set a different value
  74. if !assert.NoError(t, xl.SetPageLayout(sheet, test.nonDefault), opt) {
  75. t.FailNow()
  76. }
  77. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  78. t.FailNow()
  79. }
  80. // Get again and compare
  81. if !assert.NoError(t, xl.GetPageLayout(sheet, val2), opt) {
  82. t.FailNow()
  83. }
  84. if !assert.Equal(t, val1, val2, "%T: value should not have changed", opt) {
  85. t.FailNow()
  86. }
  87. // Value should not be the same as the default
  88. if !assert.NotEqual(t, def, val1, "%T: value should have changed from default", opt) {
  89. t.FailNow()
  90. }
  91. // Restore the default value
  92. if !assert.NoError(t, xl.SetPageLayout(sheet, def), opt) {
  93. t.FailNow()
  94. }
  95. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  96. t.FailNow()
  97. }
  98. if !assert.Equal(t, def, val1) {
  99. t.FailNow()
  100. }
  101. })
  102. }
  103. }