|
|
@@ -11,7 +11,7 @@ import (
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
- TestsShouldMakeRealFiles = true
|
|
|
+ TestsShouldMakeRealFiles = false
|
|
|
)
|
|
|
|
|
|
type StreamSuite struct{}
|
|
|
@@ -32,46 +32,34 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
testCases := []struct {
|
|
|
testName string
|
|
|
sheetNames []string
|
|
|
- workbookData [][][]StreamCell
|
|
|
+ workbookData [][][]string
|
|
|
+ headerTypes [][]*CellType
|
|
|
expectedError error
|
|
|
}{
|
|
|
- {
|
|
|
- testName: "Number Row",
|
|
|
- sheetNames: []string{
|
|
|
- "Sheet1",
|
|
|
- },
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
- {
|
|
|
- {MakeStringStreamCell("1"), MakeStringStreamCell("25"),
|
|
|
- MakeStringStreamCell("A"), MakeStringStreamCell("B")},
|
|
|
- {MakeIntegerStreamCell(1234), MakeStyledIntegerStreamCell(98, BoldIntegers),
|
|
|
- MakeStyledIntegerStreamCell(34, ItalicIntegers), MakeStyledIntegerStreamCell(26, UnderlinedIntegers)},
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
{
|
|
|
testName: "One Sheet",
|
|
|
sheetNames: []string{
|
|
|
"Sheet1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
},
|
|
|
+ headerTypes: [][]*CellType{
|
|
|
+ {nil, CellTypeString.Ptr(), nil, CellTypeString.Ptr()},
|
|
|
+ },
|
|
|
},
|
|
|
{
|
|
|
testName: "One Column",
|
|
|
sheetNames: []string{
|
|
|
"Sheet1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token")},
|
|
|
- {MakeIntegerStreamCell(123)},
|
|
|
+ {"Token"},
|
|
|
+ {"123"},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
@@ -80,36 +68,20 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1", "Sheet 2", "Sheet3",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Stock")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(1)},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(3)},
|
|
|
+ {"Token", "Name", "Price", "SKU", "Stock"},
|
|
|
+ {"456", "Salsa", "200", "0346", "1"},
|
|
|
+ {"789", "Burritos", "400", "754", "3"},
|
|
|
},
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(9853), MakeStringStreamCell("Guacamole"),
|
|
|
- MakeIntegerStreamCell(500)},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(2357), MakeStringStreamCell("Margarita"),
|
|
|
- MakeIntegerStreamCell(700)},
|
|
|
+ {"Token", "Name", "Price"},
|
|
|
+ {"9853", "Guacamole", "500"},
|
|
|
+ {"2357", "Margarita", "700"},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
@@ -118,26 +90,15 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1", "Sheet 1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Stock")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(1)},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(3)},
|
|
|
+ {"Token", "Name", "Price", "SKU", "Stock"},
|
|
|
+ {"456", "Salsa", "200", "0346", "1"},
|
|
|
+ {"789", "Burritos", "400", "754", "3"},
|
|
|
},
|
|
|
},
|
|
|
expectedError: fmt.Errorf("duplicate sheet name '%s'.", "Sheet 1"),
|
|
|
@@ -147,20 +108,14 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"456", "Salsa", "200", "0346"},
|
|
|
},
|
|
|
},
|
|
|
expectedError: AlreadyOnLastSheetError,
|
|
|
@@ -170,14 +125,10 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeStringStreamCell("asdf")},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "asdf"},
|
|
|
},
|
|
|
},
|
|
|
expectedError: WrongNumberOfRowsError,
|
|
|
@@ -187,13 +138,10 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300"},
|
|
|
},
|
|
|
},
|
|
|
expectedError: WrongNumberOfRowsError,
|
|
|
@@ -203,16 +151,13 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1", "Sheet 2", "Sheet 3", "Sheet 4", "Sheet 5", "Sheet 6",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
{{}},
|
|
|
- {{MakeStringStreamCell("Id"), MakeStringStreamCell("Unit Cost")}},
|
|
|
+ {{"Id", "Unit Cost"}},
|
|
|
{{}},
|
|
|
{{}},
|
|
|
{{}},
|
|
|
@@ -223,13 +168,10 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1", "Sheet 2",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
-
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
{{}},
|
|
|
},
|
|
|
@@ -239,308 +181,33 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet 1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU"),
|
|
|
- MakeStringStreamCell("Token"), MakeStringStreamCell("Name"),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell("SKU")},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),
|
|
|
- MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123),},
|
|
|
- {MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346),
|
|
|
- MakeIntegerStreamCell(456), MakeStringStreamCell("Salsa"),
|
|
|
- MakeIntegerStreamCell(200), MakeIntegerStreamCell(346)},
|
|
|
- {MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754),
|
|
|
- MakeIntegerStreamCell(789), MakeStringStreamCell("Burritos"),
|
|
|
- MakeIntegerStreamCell(400), MakeIntegerStreamCell(754)},
|
|
|
+ {"Token", "Name", "Price", "SKU", "Token", "Name", "Price", "SKU", "Token", "Name", "Price", "SKU", "Token", "Name", "Price", "SKU", "Token", "Name", "Price", "SKU", "Token", "Name", "Price", "SKU"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
+ {"123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123", "123", "Taco", "300", "0000000123"},
|
|
|
+ {"456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346", "456", "Salsa", "200", "0346"},
|
|
|
+ {"789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754", "789", "Burritos", "400", "754"},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
@@ -549,36 +216,30 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
sheetNames: []string{
|
|
|
"Sheet1",
|
|
|
},
|
|
|
- workbookData: [][][]StreamCell{
|
|
|
+ workbookData: [][][]string{
|
|
|
{
|
|
|
// String courtesy of https://github.com/minimaxir/big-list-of-naughty-strings/
|
|
|
// Header row contains the tags that I am filtering on
|
|
|
- {MakeStringStreamCell("Token"), MakeStringStreamCell(endSheetDataTag),
|
|
|
- MakeStringStreamCell("Price"), MakeStringStreamCell(fmt.Sprintf(dimensionTag, "A1:D1"))},
|
|
|
+ {"Token", endSheetDataTag, "Price", fmt.Sprintf(dimensionTag, "A1:D1")},
|
|
|
// Japanese and emojis
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("パーティーへ行かないか"),
|
|
|
- MakeIntegerStreamCell(300), MakeStringStreamCell("🍕🐵 🙈 🙉 🙊")},
|
|
|
+ {"123", "パーティーへ行かないか", "300", "🍕🐵 🙈 🙉 🙊"},
|
|
|
// XML encoder/parser test strings
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell(`<?xml version="1.0" encoding="ISO-8859-1"?>`),
|
|
|
- MakeIntegerStreamCell(300), MakeStringStreamCell(`<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>`)},
|
|
|
+ {"123", `<?xml version="1.0" encoding="ISO-8859-1"?>`, "300", `<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>`},
|
|
|
// Upside down text and Right to Left Arabic text
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell(`˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥
|
|
|
- 00˙Ɩ$-`), MakeIntegerStreamCell(300), MakeStringStreamCell(`ﷺ`)} ,
|
|
|
- {MakeIntegerStreamCell(123), MakeStringStreamCell("Taco"),
|
|
|
- MakeIntegerStreamCell(300), MakeIntegerStreamCell(123)},
|
|
|
+ {"123", `˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥
|
|
|
+ 00˙Ɩ$-`, "300", `ﷺ`},
|
|
|
+ {"123", "Taco", "300", "0000000123"},
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
-
|
|
|
for i, testCase := range testCases {
|
|
|
var filePath string
|
|
|
var buffer bytes.Buffer
|
|
|
if TestsShouldMakeRealFiles {
|
|
|
filePath = fmt.Sprintf("Workbook%d.xlsx", i)
|
|
|
}
|
|
|
-
|
|
|
- err := writeStreamFile(filePath, &buffer, testCase.sheetNames, testCase.workbookData, TestsShouldMakeRealFiles)
|
|
|
+ err := writeStreamFile(filePath, &buffer, testCase.sheetNames, testCase.workbookData, testCase.headerTypes, TestsShouldMakeRealFiles)
|
|
|
if err != testCase.expectedError && err.Error() != testCase.expectedError.Error() {
|
|
|
t.Fatalf("Error differs from expected error. Error: %v, Expected Error: %v ", err, testCase.expectedError)
|
|
|
}
|
|
|
@@ -597,19 +258,7 @@ func (s *StreamSuite) TestXlsxStreamWrite(t *C) {
|
|
|
if !reflect.DeepEqual(actualSheetNames, testCase.sheetNames) {
|
|
|
t.Fatal("Expected sheet names to be equal")
|
|
|
}
|
|
|
-
|
|
|
- expectedWorkbookDataStrings := [][][]string{}
|
|
|
- for j,_ := range testCase.workbookData {
|
|
|
- expectedWorkbookDataStrings = append(expectedWorkbookDataStrings, [][]string{})
|
|
|
- for k,_ := range testCase.workbookData[j]{
|
|
|
- expectedWorkbookDataStrings[j] = append(expectedWorkbookDataStrings[j], []string{})
|
|
|
- for _, cell := range testCase.workbookData[j][k] {
|
|
|
- expectedWorkbookDataStrings[j][k] = append(expectedWorkbookDataStrings[j][k], cell.cellData)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if !reflect.DeepEqual(actualWorkbookData, expectedWorkbookDataStrings) {
|
|
|
+ if !reflect.DeepEqual(actualWorkbookData, testCase.workbookData) {
|
|
|
t.Fatal("Expected workbook data to be equal")
|
|
|
}
|
|
|
}
|
|
|
@@ -668,7 +317,7 @@ func (s *StreamSuite) TestXlsxStyleBehavior(t *C) {
|
|
|
}
|
|
|
|
|
|
// writeStreamFile will write the file using this stream package
|
|
|
-func writeStreamFile(filePath string, fileBuffer io.Writer, sheetNames []string, workbookData [][][]StreamCell, shouldMakeRealFiles bool) error {
|
|
|
+func writeStreamFile(filePath string, fileBuffer io.Writer, sheetNames []string, workbookData [][][]string, headerTypes [][]*CellType, shouldMakeRealFiles bool) error {
|
|
|
var file *StreamFileBuilder
|
|
|
var err error
|
|
|
if shouldMakeRealFiles {
|
|
|
@@ -679,22 +328,13 @@ func writeStreamFile(filePath string, fileBuffer io.Writer, sheetNames []string,
|
|
|
} else {
|
|
|
file = NewStreamFileBuilder(fileBuffer)
|
|
|
}
|
|
|
-
|
|
|
- err = file.AddStreamStyle(Strings)
|
|
|
- err = file.AddStreamStyle(BoldStrings)
|
|
|
- err = file.AddStreamStyle(ItalicStrings)
|
|
|
- err = file.AddStreamStyle(UnderlinedStrings)
|
|
|
- err = file.AddStreamStyle(Integers)
|
|
|
- err = file.AddStreamStyle(BoldIntegers)
|
|
|
- err = file.AddStreamStyle(ItalicIntegers)
|
|
|
- err = file.AddStreamStyle(UnderlinedIntegers)
|
|
|
- if err != nil { // TODO handle all errors not just one
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
for i, sheetName := range sheetNames {
|
|
|
header := workbookData[i][0]
|
|
|
- err := file.AddSheet(sheetName, header)
|
|
|
+ var sheetHeaderTypes []*CellType
|
|
|
+ if i < len(headerTypes) {
|
|
|
+ sheetHeaderTypes = headerTypes[i]
|
|
|
+ }
|
|
|
+ err := file.AddSheet(sheetName, header, sheetHeaderTypes)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -704,7 +344,6 @@ func writeStreamFile(filePath string, fileBuffer io.Writer, sheetNames []string,
|
|
|
return err
|
|
|
}
|
|
|
for i, sheetData := range workbookData {
|
|
|
-
|
|
|
if i != 0 {
|
|
|
err = streamFile.NextSheet()
|
|
|
if err != nil {
|
|
|
@@ -767,11 +406,11 @@ func readXLSXFile(t *C, filePath string, fileBuffer io.ReaderAt, size int64, sho
|
|
|
func (s *StreamSuite) TestAddSheetErrorsAfterBuild(t *C) {
|
|
|
file := NewStreamFileBuilder(bytes.NewBuffer(nil))
|
|
|
|
|
|
- err := file.AddSheet("Sheet1", []StreamCell{MakeStringStreamCell("Header")})
|
|
|
+ err := file.AddSheet("Sheet1", []string{"Header"}, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- err = file.AddSheet("Sheet2", []StreamCell{MakeStringStreamCell("Header2")})
|
|
|
+ err = file.AddSheet("Sheet2", []string{"Header2"}, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
@@ -780,7 +419,7 @@ func (s *StreamSuite) TestAddSheetErrorsAfterBuild(t *C) {
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- err = file.AddSheet("Sheet3", []StreamCell{MakeStringStreamCell("Header3")})
|
|
|
+ err = file.AddSheet("Sheet3", []string{"Header3"}, nil)
|
|
|
if err != BuiltStreamFileBuilderError {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
@@ -789,11 +428,11 @@ func (s *StreamSuite) TestAddSheetErrorsAfterBuild(t *C) {
|
|
|
func (s *StreamSuite) TestBuildErrorsAfterBuild(t *C) {
|
|
|
file := NewStreamFileBuilder(bytes.NewBuffer(nil))
|
|
|
|
|
|
- err := file.AddSheet("Sheet1", []StreamCell{MakeStringStreamCell("Header")})
|
|
|
+ err := file.AddSheet("Sheet1", []string{"Header"}, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- err = file.AddSheet("Sheet2", []StreamCell{MakeStringStreamCell("Header")})
|
|
|
+ err = file.AddSheet("Sheet2", []string{"Header2"}, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
@@ -813,15 +452,15 @@ func (s *StreamSuite) TestCloseWithNothingWrittenToSheets(t *C) {
|
|
|
file := NewStreamFileBuilder(buffer)
|
|
|
|
|
|
sheetNames := []string{"Sheet1", "Sheet2"}
|
|
|
- workbookData := [][][]StreamCell{
|
|
|
- {{MakeStringStreamCell("Header1"), MakeStringStreamCell("Header2")}},
|
|
|
- {{MakeStringStreamCell("Header3"), MakeStringStreamCell("Header4")}},
|
|
|
+ workbookData := [][][]string{
|
|
|
+ {{"Header1", "Header2"}},
|
|
|
+ {{"Header3", "Header4"}},
|
|
|
}
|
|
|
- err := file.AddSheet(sheetNames[0], workbookData[0][0])
|
|
|
+ err := file.AddSheet(sheetNames[0], workbookData[0][0], nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
- err = file.AddSheet(sheetNames[1], workbookData[1][0])
|
|
|
+ err = file.AddSheet(sheetNames[1], workbookData[1][0], nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
@@ -842,93 +481,7 @@ func (s *StreamSuite) TestCloseWithNothingWrittenToSheets(t *C) {
|
|
|
if !reflect.DeepEqual(actualSheetNames, sheetNames) {
|
|
|
t.Fatal("Expected sheet names to be equal")
|
|
|
}
|
|
|
- expectedWorkbookDataStrings := [][][]string{}
|
|
|
- for j,_ := range workbookData {
|
|
|
- expectedWorkbookDataStrings = append(expectedWorkbookDataStrings, [][]string{})
|
|
|
- for k,_ := range workbookData[j]{
|
|
|
- expectedWorkbookDataStrings[j] = append(expectedWorkbookDataStrings[j], []string{})
|
|
|
- for _, cell := range workbookData[j][k] {
|
|
|
- expectedWorkbookDataStrings[j][k] = append(expectedWorkbookDataStrings[j][k], cell.cellData)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- if !reflect.DeepEqual(actualWorkbookData, expectedWorkbookDataStrings) {
|
|
|
- t.Fatal("Expected workbook data to be equal")
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func (s *StreamSuite) TestMakeNewStyleAndUseIt(t *C){
|
|
|
- var filePath string
|
|
|
- var buffer bytes.Buffer
|
|
|
- if TestsShouldMakeRealFiles {
|
|
|
- filePath = fmt.Sprintf("Workbook_newStyle.xlsx")
|
|
|
- }
|
|
|
-
|
|
|
- timesNewRoman12 := NewFont(12,TimesNewRoman)
|
|
|
- timesNewRoman12.Color = RGB_Dard_Green
|
|
|
- courier20:= NewFont(12, Courier)
|
|
|
- courier20.Color = RGB_Dark_Red
|
|
|
-
|
|
|
- greenFill := NewFill(Solid_Cell_Fill, RGB_Light_Green, RGB_White)
|
|
|
- redFill := NewFill(Solid_Cell_Fill, RGB_Light_Red, RGB_White)
|
|
|
-
|
|
|
- greenStyle := MakeStyle(0, timesNewRoman12, greenFill, DefaultAlignment(), DefaultBorder())
|
|
|
- redStyle := MakeStyle(0, courier20, redFill, DefaultAlignment(), DefaultBorder())
|
|
|
-
|
|
|
- sheetNames := []string{"Sheet1"}
|
|
|
- workbookData := [][][]StreamCell{
|
|
|
- {
|
|
|
- {MakeStringStreamCell("Header1"), MakeStringStreamCell("Header2")},
|
|
|
- {MakeStyledStringStreamCell("Good", greenStyle), MakeStyledStringStreamCell("Bad", redStyle)},
|
|
|
- },
|
|
|
- }
|
|
|
-
|
|
|
- err := writeStreamFile(filePath, &buffer, sheetNames, workbookData, TestsShouldMakeRealFiles)
|
|
|
-
|
|
|
- if err != nil {
|
|
|
- t.Fatal("Error during writing")
|
|
|
- }
|
|
|
-
|
|
|
- // read the file back with the xlsx package
|
|
|
- var bufReader *bytes.Reader
|
|
|
- var size int64
|
|
|
- if !TestsShouldMakeRealFiles {
|
|
|
- bufReader = bytes.NewReader(buffer.Bytes())
|
|
|
- size = bufReader.Size()
|
|
|
- }
|
|
|
- actualSheetNames, actualWorkbookData := readXLSXFile(t, filePath, bufReader, size, TestsShouldMakeRealFiles)
|
|
|
- // check if data was able to be read correctly
|
|
|
- if !reflect.DeepEqual(actualSheetNames, sheetNames) {
|
|
|
- t.Fatal("Expected sheet names to be equal")
|
|
|
- }
|
|
|
-
|
|
|
- expectedWorkbookDataStrings := [][][]string{}
|
|
|
- for j,_ := range workbookData {
|
|
|
- expectedWorkbookDataStrings = append(expectedWorkbookDataStrings, [][]string{})
|
|
|
- for k,_ := range workbookData[j]{
|
|
|
- expectedWorkbookDataStrings[j] = append(expectedWorkbookDataStrings[j], []string{})
|
|
|
- for _, cell := range workbookData[j][k] {
|
|
|
- expectedWorkbookDataStrings[j][k] = append(expectedWorkbookDataStrings[j][k], cell.cellData)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if !reflect.DeepEqual(actualWorkbookData, expectedWorkbookDataStrings) {
|
|
|
+ if !reflect.DeepEqual(actualWorkbookData, workbookData) {
|
|
|
t.Fatal("Expected workbook data to be equal")
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+}
|