|
|
@@ -894,124 +894,11 @@ func TestCopySheetError(t *testing.T) {
|
|
|
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestCopySheetError.xlsx")))
|
|
|
}
|
|
|
|
|
|
-func TestAddTable(t *testing.T) {
|
|
|
- f, err := prepareTestBook1()
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- err = f.AddTable("Sheet1", "B26", "A21", `{}`)
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- err = f.AddTable("Sheet2", "A2", "B5", `{"table_name":"table","table_style":"TableStyleMedium2", "show_first_column":true,"show_last_column":true,"show_row_stripes":false,"show_column_stripes":true}`)
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- err = f.AddTable("Sheet2", "F1", "F1", `{"table_style":"TableStyleMedium8"}`)
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- // Test add table with illegal formatset.
|
|
|
- assert.EqualError(t, f.AddTable("Sheet1", "B26", "A21", `{x}`), "invalid character 'x' looking for beginning of object key string")
|
|
|
- // Test add table with illegal cell coordinates.
|
|
|
- assert.EqualError(t, f.AddTable("Sheet1", "A", "B1", `{}`), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
|
|
|
- assert.EqualError(t, f.AddTable("Sheet1", "A1", "B", `{}`), `cannot convert cell "B" to coordinates: invalid cell name "B"`)
|
|
|
-
|
|
|
- assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddTable.xlsx")))
|
|
|
-
|
|
|
- // Test addTable with illegal cell coordinates.
|
|
|
- f = NewFile()
|
|
|
- assert.EqualError(t, f.addTable("sheet1", "", 0, 0, 0, 0, 0, nil), "invalid cell coordinates [0, 0]")
|
|
|
- assert.EqualError(t, f.addTable("sheet1", "", 1, 1, 0, 0, 0, nil), "invalid cell coordinates [0, 0]")
|
|
|
-}
|
|
|
-
|
|
|
-func TestAddShape(t *testing.T) {
|
|
|
- f, err := prepareTestBook1()
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- assert.NoError(t, f.AddShape("Sheet1", "A30", `{"type":"rect","paragraph":[{"text":"Rectangle","font":{"color":"CD5C5C"}},{"text":"Shape","font":{"bold":true,"color":"2980B9"}}]}`))
|
|
|
- assert.NoError(t, f.AddShape("Sheet1", "B30", `{"type":"rect","paragraph":[{"text":"Rectangle"},{}]}`))
|
|
|
- assert.NoError(t, f.AddShape("Sheet1", "C30", `{"type":"rect","paragraph":[]}`))
|
|
|
- assert.EqualError(t, f.AddShape("Sheet3", "H1", `{"type":"ellipseRibbon", "color":{"line":"#4286f4","fill":"#8eb9ff"}, "paragraph":[{"font":{"bold":true,"italic":true,"family":"Times New Roman","size":36,"color":"#777777","underline":"single"}}], "height": 90}`), "sheet Sheet3 is not exist")
|
|
|
- assert.EqualError(t, f.AddShape("Sheet3", "H1", ""), "unexpected end of JSON input")
|
|
|
- assert.EqualError(t, f.AddShape("Sheet1", "A", `{"type":"rect","paragraph":[{"text":"Rectangle","font":{"color":"CD5C5C"}},{"text":"Shape","font":{"bold":true,"color":"2980B9"}}]}`), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
|
|
|
- assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddShape1.xlsx")))
|
|
|
-
|
|
|
- // Test add first shape for given sheet.
|
|
|
- f = NewFile()
|
|
|
- assert.NoError(t, f.AddShape("Sheet1", "A1", `{"type":"ellipseRibbon", "color":{"line":"#4286f4","fill":"#8eb9ff"}, "paragraph":[{"font":{"bold":true,"italic":true,"family":"Times New Roman","size":36,"color":"#777777","underline":"single"}}], "height": 90}`))
|
|
|
- assert.NoError(t, f.SaveAs(filepath.Join("test", "TestAddShape2.xlsx")))
|
|
|
-}
|
|
|
-
|
|
|
func TestGetSheetComments(t *testing.T) {
|
|
|
f := NewFile()
|
|
|
assert.Equal(t, "", f.getSheetComments(0))
|
|
|
}
|
|
|
|
|
|
-func TestAutoFilter(t *testing.T) {
|
|
|
- outFile := filepath.Join("test", "TestAutoFilter%d.xlsx")
|
|
|
-
|
|
|
- f, err := prepareTestBook1()
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- formats := []string{
|
|
|
- ``,
|
|
|
- `{"column":"B","expression":"x != blanks"}`,
|
|
|
- `{"column":"B","expression":"x == blanks"}`,
|
|
|
- `{"column":"B","expression":"x != nonblanks"}`,
|
|
|
- `{"column":"B","expression":"x == nonblanks"}`,
|
|
|
- `{"column":"B","expression":"x <= 1 and x >= 2"}`,
|
|
|
- `{"column":"B","expression":"x == 1 or x == 2"}`,
|
|
|
- `{"column":"B","expression":"x == 1 or x == 2*"}`,
|
|
|
- }
|
|
|
-
|
|
|
- for i, format := range formats {
|
|
|
- t.Run(fmt.Sprintf("Expression%d", i+1), func(t *testing.T) {
|
|
|
- err = f.AutoFilter("Sheet1", "D4", "B1", format)
|
|
|
- assert.NoError(t, err)
|
|
|
- assert.NoError(t, f.SaveAs(fmt.Sprintf(outFile, i+1)))
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- // testing AutoFilter with illegal cell coordinates.
|
|
|
- assert.EqualError(t, f.AutoFilter("Sheet1", "A", "B1", ""), `cannot convert cell "A" to coordinates: invalid cell name "A"`)
|
|
|
- assert.EqualError(t, f.AutoFilter("Sheet1", "A1", "B", ""), `cannot convert cell "B" to coordinates: invalid cell name "B"`)
|
|
|
-}
|
|
|
-
|
|
|
-func TestAutoFilterError(t *testing.T) {
|
|
|
- outFile := filepath.Join("test", "TestAutoFilterError%d.xlsx")
|
|
|
-
|
|
|
- f, err := prepareTestBook1()
|
|
|
- if !assert.NoError(t, err) {
|
|
|
- t.FailNow()
|
|
|
- }
|
|
|
-
|
|
|
- formats := []string{
|
|
|
- `{"column":"B","expression":"x <= 1 and x >= blanks"}`,
|
|
|
- `{"column":"B","expression":"x -- y or x == *2*"}`,
|
|
|
- `{"column":"B","expression":"x != y or x ? *2"}`,
|
|
|
- `{"column":"B","expression":"x -- y o r x == *2"}`,
|
|
|
- `{"column":"B","expression":"x -- y"}`,
|
|
|
- `{"column":"A","expression":"x -- y"}`,
|
|
|
- }
|
|
|
- for i, format := range formats {
|
|
|
- t.Run(fmt.Sprintf("Expression%d", i+1), func(t *testing.T) {
|
|
|
- err = f.AutoFilter("Sheet3", "D4", "B1", format)
|
|
|
- if assert.Error(t, err) {
|
|
|
- assert.NoError(t, f.SaveAs(fmt.Sprintf(outFile, i+1)))
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
func TestSetActiveSheet(t *testing.T) {
|
|
|
f := NewFile()
|
|
|
f.WorkBook.BookViews = nil
|