|
@@ -1,6 +1,8 @@
|
|
|
package xlsx
|
|
package xlsx
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "bytes"
|
|
|
|
|
+ "encoding/xml"
|
|
|
. "gopkg.in/check.v1"
|
|
. "gopkg.in/check.v1"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
@@ -25,9 +27,7 @@ func (s *SheetSuite) TestMakeXLSXSheetFromRows(c *C) {
|
|
|
cell := row.AddCell()
|
|
cell := row.AddCell()
|
|
|
cell.Value = "A cell!"
|
|
cell.Value = "A cell!"
|
|
|
refTable := NewSharedStringRefTable()
|
|
refTable := NewSharedStringRefTable()
|
|
|
- // refTable.AddStringsFromSheet(sheet)
|
|
|
|
|
xSheet:= sheet.makeXLSXSheet(refTable)
|
|
xSheet:= sheet.makeXLSXSheet(refTable)
|
|
|
- // xSST := refTable.makeXLSXSST()
|
|
|
|
|
c.Assert(xSheet.Dimension.Ref, Equals, "A1:A1")
|
|
c.Assert(xSheet.Dimension.Ref, Equals, "A1:A1")
|
|
|
c.Assert(xSheet.SheetData.Row, HasLen, 1)
|
|
c.Assert(xSheet.SheetData.Row, HasLen, 1)
|
|
|
xRow := xSheet.SheetData.Row[0]
|
|
xRow := xSheet.SheetData.Row[0]
|
|
@@ -39,27 +39,41 @@ func (s *SheetSuite) TestMakeXLSXSheetFromRows(c *C) {
|
|
|
c.Assert(xC.S, Equals, 0)
|
|
c.Assert(xC.S, Equals, 0)
|
|
|
c.Assert(xC.T, Equals, "s") // Shared string type
|
|
c.Assert(xC.T, Equals, "s") // Shared string type
|
|
|
c.Assert(xC.V, Equals, "0") // reference to shared string
|
|
c.Assert(xC.V, Equals, "0") // reference to shared string
|
|
|
|
|
+ xSST := refTable.makeXLSXSST()
|
|
|
|
|
+ c.Assert(xSST.Count, Equals, 1)
|
|
|
|
|
+ c.Assert(xSST.UniqueCount, Equals, 1)
|
|
|
|
|
+ c.Assert(xSST.SI, HasLen, 1)
|
|
|
|
|
+ xSI := xSST.SI[0]
|
|
|
|
|
+ c.Assert(xSI.T, Equals, "A cell!")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-// expectedXLSXSheet := `<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
-// <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
|
|
|
-// <dimension ref="A1:A1"></dimension>
|
|
|
|
|
-// <sheetData>
|
|
|
|
|
-// <row r="1">
|
|
|
|
|
-// <c r="A1" t="s">
|
|
|
|
|
-// <v>0</v>
|
|
|
|
|
-// </c>
|
|
|
|
|
-// </row>
|
|
|
|
|
-// </sheetData>
|
|
|
|
|
-// </worksheet>`
|
|
|
|
|
-// expectedXLSXSST := `<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
-// <sst uniqueCount="1">
|
|
|
|
|
-// <si>
|
|
|
|
|
-// <t>A cell!</t>
|
|
|
|
|
-// </si>
|
|
|
|
|
-// </sst>`
|
|
|
|
|
-// c.Assert(string(xSheet), Equals, expectedXLSXSheet)
|
|
|
|
|
-// c.Assert(string(xSST), Equals, expectedXLSXSST)
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+func (s *SheetSuite) TestMarshalSheet(c *C) {
|
|
|
|
|
+ file := NewFile()
|
|
|
|
|
+ sheet := file.AddSheet("Sheet1")
|
|
|
|
|
+ row := sheet.AddRow()
|
|
|
|
|
+ cell := row.AddCell()
|
|
|
|
|
+ cell.Value = "A cell!"
|
|
|
|
|
+ refTable := NewSharedStringRefTable()
|
|
|
|
|
+ xSheet:= sheet.makeXLSXSheet(refTable)
|
|
|
|
|
+
|
|
|
|
|
+ output := bytes.NewBufferString(xml.Header)
|
|
|
|
|
+ body, err := xml.MarshalIndent(xSheet, " ", " ")
|
|
|
|
|
+ c.Assert(err, IsNil)
|
|
|
|
|
+ c.Assert(body, NotNil)
|
|
|
|
|
+ _, err = output.Write(body)
|
|
|
|
|
+ c.Assert(err, IsNil)
|
|
|
|
|
+ expectedXLSXSheet := `<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
|
|
|
+ <dimension ref="A1:A1"></dimension>
|
|
|
|
|
+ <sheetData>
|
|
|
|
|
+ <row r="1">
|
|
|
|
|
+ <c r="A1" t="s">
|
|
|
|
|
+ <v>0</v>
|
|
|
|
|
+ </c>
|
|
|
|
|
+ </row>
|
|
|
|
|
+ </sheetData>
|
|
|
|
|
+ </worksheet>`
|
|
|
|
|
+ c.Assert(output.String(), Equals, expectedXLSXSheet)
|
|
|
|
|
+}
|
|
|
|
|
|