xmlWorksheet_test.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. package xlsx
  2. import (
  3. "bytes"
  4. "encoding/xml"
  5. . "gopkg.in/check.v1"
  6. )
  7. type WorksheetSuite struct{}
  8. var _ = Suite(&WorksheetSuite{})
  9. // Test we can succesfully unmarshal the sheetN.xml files within and
  10. // XLSX file into an xlsxWorksheet struct (and it's related children).
  11. func (w *WorksheetSuite) TestUnmarshallWorksheet(c *C) {
  12. var sheetxml = bytes.NewBufferString(
  13. `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  14. <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"
  15. xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
  16. <sheetPr filterMode="false">
  17. <pageSetUpPr fitToPage="false"/>
  18. </sheetPr>
  19. <dimension ref="A1:B2"/>
  20. <sheetViews>
  21. <sheetView colorId="64"
  22. defaultGridColor="true"
  23. rightToLeft="false"
  24. showFormulas="false"
  25. showGridLines="true"
  26. showOutlineSymbols="true"
  27. showRowColHeaders="true"
  28. showZeros="true"
  29. tabSelected="true"
  30. topLeftCell="A1"
  31. view="normal"
  32. windowProtection="false"
  33. workbookViewId="0"
  34. zoomScale="100"
  35. zoomScaleNormal="100"
  36. zoomScalePageLayoutView="100">
  37. <selection activeCell="B2"
  38. activeCellId="0"
  39. pane="topLeft"
  40. sqref="B2"/>
  41. </sheetView>
  42. </sheetViews>
  43. <sheetFormatPr defaultRowHeight="15">
  44. </sheetFormatPr>
  45. <cols>
  46. <col collapsed="false"
  47. hidden="false"
  48. max="1025"
  49. min="1"
  50. style="0"
  51. width="10.5748987854251"/>
  52. </cols>
  53. <sheetData>
  54. <row collapsed="false"
  55. customFormat="false"
  56. customHeight="false"
  57. hidden="false"
  58. ht="14.9"
  59. outlineLevel="0"
  60. r="1">
  61. <c r="A1"
  62. s="1"
  63. t="s">
  64. <v>0</v>
  65. </c>
  66. <c r="B1"
  67. s="0"
  68. t="s">
  69. <v>1</v>
  70. </c>
  71. </row>
  72. <row collapsed="false"
  73. customFormat="false"
  74. customHeight="false"
  75. hidden="false"
  76. ht="14.9"
  77. outlineLevel="0"
  78. r="2">
  79. <c r="A2"
  80. s="0"
  81. t="s">
  82. <v>2</v>
  83. </c>
  84. <c r="B2"
  85. s="2"
  86. t="s">
  87. <v>3</v>
  88. </c>
  89. </row>
  90. </sheetData>
  91. <printOptions headings="false"
  92. gridLines="false"
  93. gridLinesSet="true"
  94. horizontalCentered="false"
  95. verticalCentered="false"/>
  96. <pageMargins left="0.7"
  97. right="0.7"
  98. top="0.7875"
  99. bottom="0.7875"
  100. header="0.511805555555555"
  101. footer="0.511805555555555"/>
  102. <pageSetup blackAndWhite="false"
  103. cellComments="none"
  104. copies="1"
  105. draft="false"
  106. firstPageNumber="0"
  107. fitToHeight="1"
  108. fitToWidth="1"
  109. horizontalDpi="300"
  110. orientation="portrait"
  111. pageOrder="downThenOver"
  112. paperSize="9"
  113. scale="100"
  114. useFirstPageNumber="false"
  115. usePrinterDefaults="false"
  116. verticalDpi="300"/>
  117. <headerFooter differentFirst="false"
  118. differentOddEven="false">
  119. <oddHeader>
  120. </oddHeader>
  121. <oddFooter>
  122. </oddFooter>
  123. </headerFooter>
  124. </worksheet>`)
  125. worksheet := new(xlsxWorksheet)
  126. err := xml.NewDecoder(sheetxml).Decode(worksheet)
  127. c.Assert(err, IsNil)
  128. c.Assert(worksheet.Dimension.Ref, Equals, "A1:B2")
  129. c.Assert(worksheet.SheetData.Row, HasLen, 2)
  130. row := worksheet.SheetData.Row[0]
  131. c.Assert(row.R, Equals, 1)
  132. c.Assert(row.C, HasLen, 2)
  133. cell := row.C[0]
  134. c.Assert(cell.R, Equals, "A1")
  135. c.Assert(cell.T, Equals, "s")
  136. c.Assert(cell.V, Equals, "0")
  137. }