sheet_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. if err := xl.SetPageLayout(
  19. "Sheet1",
  20. excelize.PageLayoutPaperSize(10),
  21. ); err != nil {
  22. panic(err)
  23. }
  24. // Output:
  25. }
  26. func ExampleFile_GetPageLayout() {
  27. xl := excelize.NewFile()
  28. const sheet = "Sheet1"
  29. var (
  30. orientation excelize.PageLayoutOrientation
  31. paperSize excelize.PageLayoutPaperSize
  32. )
  33. if err := xl.GetPageLayout("Sheet1", &orientation); err != nil {
  34. panic(err)
  35. }
  36. if err := xl.GetPageLayout("Sheet1", &paperSize); err != nil {
  37. panic(err)
  38. }
  39. fmt.Println("Defaults:")
  40. fmt.Printf("- orientation: %q\n", orientation)
  41. fmt.Printf("- paper size: %d\n", paperSize)
  42. // Output:
  43. // Defaults:
  44. // - orientation: "portrait"
  45. // - paper size: 1
  46. }
  47. func TestPageLayoutOption(t *testing.T) {
  48. const sheet = "Sheet1"
  49. testData := []struct {
  50. container excelize.PageLayoutOptionPtr
  51. nonDefault excelize.PageLayoutOption
  52. }{
  53. {new(excelize.PageLayoutOrientation), excelize.PageLayoutOrientation(excelize.OrientationLandscape)},
  54. {new(excelize.PageLayoutPaperSize), excelize.PageLayoutPaperSize(10)},
  55. }
  56. for i, test := range testData {
  57. t.Run(fmt.Sprintf("TestData%d", i), func(t *testing.T) {
  58. opt := test.nonDefault
  59. t.Logf("option %T", opt)
  60. def := deepcopy.Copy(test.container).(excelize.PageLayoutOptionPtr)
  61. val1 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr)
  62. val2 := deepcopy.Copy(def).(excelize.PageLayoutOptionPtr)
  63. xl := excelize.NewFile()
  64. // Get the default value
  65. if !assert.NoError(t, xl.GetPageLayout(sheet, def), opt) {
  66. t.FailNow()
  67. }
  68. // Get again and check
  69. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  70. t.FailNow()
  71. }
  72. if !assert.Equal(t, val1, def, opt) {
  73. t.FailNow()
  74. }
  75. // Set the same value
  76. if !assert.NoError(t, xl.SetPageLayout(sheet, val1), opt) {
  77. t.FailNow()
  78. }
  79. // Get again and check
  80. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  81. t.FailNow()
  82. }
  83. if !assert.Equal(t, val1, def, "%T: value should not have changed", opt) {
  84. t.FailNow()
  85. }
  86. // Set a different value
  87. if !assert.NoError(t, xl.SetPageLayout(sheet, test.nonDefault), opt) {
  88. t.FailNow()
  89. }
  90. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  91. t.FailNow()
  92. }
  93. // Get again and compare
  94. if !assert.NoError(t, xl.GetPageLayout(sheet, val2), opt) {
  95. t.FailNow()
  96. }
  97. if !assert.Equal(t, val1, val2, "%T: value should not have changed", opt) {
  98. t.FailNow()
  99. }
  100. // Value should not be the same as the default
  101. if !assert.NotEqual(t, def, val1, "%T: value should have changed from default", opt) {
  102. t.FailNow()
  103. }
  104. // Restore the default value
  105. if !assert.NoError(t, xl.SetPageLayout(sheet, def), opt) {
  106. t.FailNow()
  107. }
  108. if !assert.NoError(t, xl.GetPageLayout(sheet, val1), opt) {
  109. t.FailNow()
  110. }
  111. if !assert.Equal(t, def, val1) {
  112. t.FailNow()
  113. }
  114. })
  115. }
  116. }