diff options
author | xuri <xuri.me@gmail.com> | 2019-03-23 20:08:06 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2019-03-23 20:08:06 +0800 |
commit | 40ff5dc1a7d7aa42f5db9cf9dfe858cc3820b44e (patch) | |
tree | 9683b0a18a08f6603065506589a3c86dba5b8bb1 /excelize_test.go | |
parent | 2874d75555102b8266477cdda2966ff37dde6b12 (diff) |
refactor: handler error instead of panic,
Exported functions:
SetCellStyle
InsertCol
RemoveCol
RemoveRow
InsertRow
DuplicateRow
DuplicateRowTo
SetRowHeight
GetRowHeight
GetCellValue
GetCellFormula
GetCellHyperLink
SetCellHyperLink
SetCellInt
SetCellBool
SetCellFloat
SetCellStr
SetCellDefault
GetCellStyle
SetCellValue
MergeCell
SetSheetRow
SetRowVisible
GetRowVisible
SetRowOutlineLevel
GetRowOutlineLevel
GetRows
Columns
SearchSheet
AddTable
GetPicture
AutoFilter
GetColVisible
SetColVisible
GetColOutlineLevel
SetColOutlineLevel
SetColWidth
GetColWidth
inner functions:
adjustHelper
adjustMergeCells
adjustAutoFilter
prepareCell
setDefaultTimeStyle
timeToExcelTime
addDrawingChart
addDrawingVML
addDrawingPicture
getTotalRowsCols
checkRow
addDrawingShape
addTable
Diffstat (limited to 'excelize_test.go')
-rw-r--r-- | excelize_test.go | 202 |
1 files changed, 93 insertions, 109 deletions
diff --git a/excelize_test.go b/excelize_test.go index 9671130..ab5e17b 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -27,7 +27,8 @@ func TestOpenFile(t *testing.T) { // Test get all the rows in a not exists worksheet. xlsx.GetRows("Sheet4") // Test get all the rows in a worksheet. - rows := xlsx.GetRows("Sheet2") + rows, err := xlsx.GetRows("Sheet2") + assert.NoError(t, err) for _, row := range rows { for _, cell := range row { t.Log(cell, "\t") @@ -40,16 +41,13 @@ func TestOpenFile(t *testing.T) { xlsx.SetCellDefault("Sheet2", "A1", strconv.FormatFloat(float64(-100.1588), 'f', -1, 64)) // Test set cell value with illegal row number. - assert.Panics(t, func() { - xlsx.SetCellDefault("Sheet2", "A", strconv.FormatFloat(float64(-100.1588), 'f', -1, 64)) - }) + assert.EqualError(t, xlsx.SetCellDefault("Sheet2", "A", strconv.FormatFloat(float64(-100.1588), 'f', -1, 64)), + `cannot convert cell "A" to coordinates: invalid cell name "A"`) xlsx.SetCellInt("Sheet2", "A1", 100) // Test set cell integer value with illegal row number. - assert.Panics(t, func() { - xlsx.SetCellInt("Sheet2", "A", 100) - }) + assert.EqualError(t, xlsx.SetCellInt("Sheet2", "A", 100), `cannot convert cell "A" to coordinates: invalid cell name "A"`) xlsx.SetCellStr("Sheet2", "C11", "Knowns") // Test max characters in a cell. @@ -62,35 +60,31 @@ func TestOpenFile(t *testing.T) { xlsx.SetCellStr("Sheet10", "b230", "10") // Test set cell string value with illegal row number. - assert.Panics(t, func() { - xlsx.SetCellStr("Sheet10", "A", "10") - }) + assert.EqualError(t, xlsx.SetCellStr("Sheet10", "A", "10"), `cannot convert cell "A" to coordinates: invalid cell name "A"`) xlsx.SetActiveSheet(2) // Test get cell formula with given rows number. - xlsx.GetCellFormula("Sheet1", "B19") + _, err = xlsx.GetCellFormula("Sheet1", "B19") + assert.NoError(t, err) // Test get cell formula with illegal worksheet name. - xlsx.GetCellFormula("Sheet2", "B20") - xlsx.GetCellFormula("Sheet1", "B20") + _, err = xlsx.GetCellFormula("Sheet2", "B20") + assert.NoError(t, err) + _, err = xlsx.GetCellFormula("Sheet1", "B20") + assert.NoError(t, err) // Test get cell formula with illegal rows number. - assert.Panics(t, func() { - xlsx.GetCellFormula("Sheet1", "B") - }) - + _, err = xlsx.GetCellFormula("Sheet1", "B") + assert.EqualError(t, err, `cannot convert cell "B" to coordinates: invalid cell name "B"`) // Test get shared cell formula xlsx.GetCellFormula("Sheet2", "H11") xlsx.GetCellFormula("Sheet2", "I11") getSharedForumula(&xlsxWorksheet{}, "") // Test read cell value with given illegal rows number. - assert.Panics(t, func() { - xlsx.GetCellValue("Sheet2", "a-1") - }) - - assert.Panics(t, func() { - xlsx.GetCellValue("Sheet2", "A") - }) + _, err = xlsx.GetCellValue("Sheet2", "a-1") + assert.EqualError(t, err, `cannot convert cell "A-1" to coordinates: invalid cell name "A-1"`) + _, err = xlsx.GetCellValue("Sheet2", "A") + assert.EqualError(t, err, `cannot convert cell "A" to coordinates: invalid cell name "A"`) // Test read cell value with given lowercase column number. xlsx.GetCellValue("Sheet2", "a5") @@ -127,14 +121,14 @@ func TestOpenFile(t *testing.T) { } for _, test := range booltest { xlsx.SetCellValue("Sheet2", "F16", test.value) - assert.Equal(t, test.expected, xlsx.GetCellValue("Sheet2", "F16")) + val, err := xlsx.GetCellValue("Sheet2", "F16") + assert.NoError(t, err) + assert.Equal(t, test.expected, val) } xlsx.SetCellValue("Sheet2", "G2", nil) - assert.Panics(t, func() { - xlsx.SetCellValue("Sheet2", "G4", time.Now()) - }) + assert.EqualError(t, xlsx.SetCellValue("Sheet2", "G4", time.Now()), "only UTC time expected") xlsx.SetCellValue("Sheet2", "G4", time.Now().UTC()) // 02:46:40 @@ -320,19 +314,15 @@ func TestSetCellHyperLink(t *testing.T) { t.Log(err) } // Test set cell hyperlink in a work sheet already have hyperlinks. - xlsx.SetCellHyperLink("Sheet1", "B19", "https://github.com/360EntSecGroup-Skylar/excelize", "External") + assert.NoError(t, xlsx.SetCellHyperLink("Sheet1", "B19", "https://github.com/360EntSecGroup-Skylar/excelize", "External")) // Test add first hyperlink in a work sheet. - xlsx.SetCellHyperLink("Sheet2", "C1", "https://github.com/360EntSecGroup-Skylar/excelize", "External") + assert.NoError(t, xlsx.SetCellHyperLink("Sheet2", "C1", "https://github.com/360EntSecGroup-Skylar/excelize", "External")) // Test add Location hyperlink in a work sheet. - xlsx.SetCellHyperLink("Sheet2", "D6", "Sheet1!D8", "Location") + assert.NoError(t, xlsx.SetCellHyperLink("Sheet2", "D6", "Sheet1!D8", "Location")) - assert.Panics(t, func() { - xlsx.SetCellHyperLink("Sheet2", "C3", "Sheet1!D8", "") - }) + assert.EqualError(t, xlsx.SetCellHyperLink("Sheet2", "C3", "Sheet1!D8", ""), `invalid link type ""`) - assert.Panics(t, func() { - xlsx.SetCellHyperLink("Sheet2", "", "Sheet1!D60", "Location") - }) + assert.EqualError(t, xlsx.SetCellHyperLink("Sheet2", "", "Sheet1!D60", "Location"), `invalid cell name ""`) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellHyperLink.xlsx"))) } @@ -343,15 +333,17 @@ func TestGetCellHyperLink(t *testing.T) { t.FailNow() } - assert.Panics(t, func() { - xlsx.GetCellHyperLink("Sheet1", "") - }) + link, target, err := xlsx.GetCellHyperLink("Sheet1", "") + assert.EqualError(t, err, `invalid cell name ""`) - link, target := xlsx.GetCellHyperLink("Sheet1", "A22") + link, target, err = xlsx.GetCellHyperLink("Sheet1", "A22") + assert.NoError(t, err) t.Log(link, target) - link, target = xlsx.GetCellHyperLink("Sheet2", "D6") + link, target, err = xlsx.GetCellHyperLink("Sheet2", "D6") + assert.NoError(t, err) t.Log(link, target) - link, target = xlsx.GetCellHyperLink("Sheet3", "H3") + link, target, err = xlsx.GetCellHyperLink("Sheet3", "H3") + assert.NoError(t, err) t.Log(link, target) } @@ -365,9 +357,7 @@ func TestSetCellFormula(t *testing.T) { xlsx.SetCellFormula("Sheet1", "C19", "SUM(Sheet2!D2,Sheet2!D9)") // Test set cell formula with illegal rows number. - assert.Panics(t, func() { - xlsx.SetCellFormula("Sheet1", "C", "SUM(Sheet2!D2,Sheet2!D9)") - }) + assert.EqualError(t, xlsx.SetCellFormula("Sheet1", "C", "SUM(Sheet2!D2,Sheet2!D9)"), `cannot convert cell "C" to coordinates: invalid cell name "C"`) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellFormula1.xlsx"))) @@ -496,21 +486,16 @@ func TestSetCellStyleAlignment(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A22", "A22", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A22", "A22", style)) // Test set cell style with given illegal rows number. - assert.Panics(t, func() { - xlsx.SetCellStyle("Sheet1", "A", "A22", style) - }) - - assert.Panics(t, func() { - xlsx.SetCellStyle("Sheet1", "A22", "A", style) - }) + assert.EqualError(t, xlsx.SetCellStyle("Sheet1", "A", "A22", style), `cannot convert cell "A" to coordinates: invalid cell name "A"`) + assert.EqualError(t, xlsx.SetCellStyle("Sheet1", "A22", "A", style), `cannot convert cell "A" to coordinates: invalid cell name "A"`) // Test get cell style with given illegal rows number. - assert.Panics(t, func() { - xlsx.GetCellStyle("Sheet1", "A") - }) + index, err := xlsx.GetCellStyle("Sheet1", "A") + assert.Equal(t, 0, index) + assert.EqualError(t, err, `cannot convert cell "A" to coordinates: invalid cell name "A"`) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleAlignment.xlsx"))) } @@ -528,19 +513,19 @@ func TestSetCellStyleBorder(t *testing.T) { if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "J21", "L25", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "J21", "L25", style)) style, err = xlsx.NewStyle(`{"border":[{"type":"left","color":"0000FF","style":2},{"type":"top","color":"00FF00","style":3},{"type":"bottom","color":"FFFF00","style":4},{"type":"right","color":"FF0000","style":5},{"type":"diagonalDown","color":"A020F0","style":6},{"type":"diagonalUp","color":"A020F0","style":7}],"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":1}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "M28", "K24", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "M28", "K24", style)) style, err = xlsx.NewStyle(`{"border":[{"type":"left","color":"0000FF","style":2},{"type":"top","color":"00FF00","style":3},{"type":"bottom","color":"FFFF00","style":4},{"type":"right","color":"FF0000","style":5},{"type":"diagonalDown","color":"A020F0","style":6},{"type":"diagonalUp","color":"A020F0","style":7}],"fill":{"type":"gradient","color":["#FFFFFF","#E0EBF5"],"shading":4}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "M28", "K24", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "M28", "K24", style)) // Test set border and solid style pattern fill for a single cell. style, err = xlsx.NewStyle(`{"border":[{"type":"left","color":"0000FF","style":8},{"type":"top","color":"00FF00","style":9},{"type":"bottom","color":"FFFF00","style":10},{"type":"right","color":"FF0000","style":11},{"type":"diagonalDown","color":"A020F0","style":12},{"type":"diagonalUp","color":"A020F0","style":13}],"fill":{"type":"pattern","color":["#E0EBF5"],"pattern":1}}`) @@ -548,7 +533,7 @@ func TestSetCellStyleBorder(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "O22", "O22", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "O22", "O22", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleBorder.xlsx"))) } @@ -596,7 +581,7 @@ func TestSetCellStyleNumberFormat(t *testing.T) { if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", c, c, style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", c, c, style)) t.Log(xlsx.GetCellValue("Sheet2", c)) } } @@ -605,7 +590,7 @@ func TestSetCellStyleNumberFormat(t *testing.T) { if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "L33", "L33", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "L33", "L33", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleNumberFormat.xlsx"))) } @@ -625,13 +610,13 @@ func TestSetCellStyleCurrencyNumberFormat(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A1", "A1", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A1", "A1", style)) style, err = xlsx.NewStyle(`{"number_format": 188, "decimal_places": 31, "negred": true}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A2", "A2", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A2", "A2", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleCurrencyNumberFormat.TestBook3.xlsx"))) }) @@ -654,19 +639,19 @@ func TestSetCellStyleCurrencyNumberFormat(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A1", "A1", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A1", "A1", style)) style, err = xlsx.NewStyle(`{"number_format": 31, "lang": "ko-kr"}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A2", "A2", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A2", "A2", style)) style, err = xlsx.NewStyle(`{"number_format": 71, "lang": "th-th"}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "A2", "A2", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A2", "A2", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleCurrencyNumberFormat.TestBook4.xlsx"))) }) @@ -680,12 +665,12 @@ func TestSetCellStyleCustomNumberFormat(t *testing.T) { if err != nil { t.Log(err) } - xlsx.SetCellStyle("Sheet1", "A1", "A1", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A1", "A1", style)) style, err = xlsx.NewStyle(`{"custom_number_format": "[$-380A]dddd\\,\\ dd\" de \"mmmm\" de \"yyyy;@"}`) if err != nil { t.Log(err) } - xlsx.SetCellStyle("Sheet1", "A2", "A2", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "A2", "A2", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleCustomNumberFormat.xlsx"))) } @@ -702,25 +687,25 @@ func TestSetCellStyleFill(t *testing.T) { if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "O23", "O23", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "O23", "O23", style)) style, err = xlsx.NewStyle(`{"fill":{"type":"gradient","color":["#FFFFFF"],"shading":1}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "O23", "O23", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "O23", "O23", style)) style, err = xlsx.NewStyle(`{"fill":{"type":"pattern","color":[],"pattern":1}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "O23", "O23", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "O23", "O23", style)) style, err = xlsx.NewStyle(`{"fill":{"type":"pattern","color":["#E0EBF5"],"pattern":19}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet1", "O23", "O23", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet1", "O23", "O23", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleFill.xlsx"))) } @@ -737,35 +722,35 @@ func TestSetCellStyleFont(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A1", "A1", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A1", "A1", style)) style, err = xlsx.NewStyle(`{"font":{"italic":true,"underline":"double"}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A2", "A2", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A2", "A2", style)) style, err = xlsx.NewStyle(`{"font":{"bold":true}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A3", "A3", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A3", "A3", style)) style, err = xlsx.NewStyle(`{"font":{"bold":true,"family":"","size":0,"color":"","underline":""}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A4", "A4", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A4", "A4", style)) style, err = xlsx.NewStyle(`{"font":{"color":"#777777"}}`) if !assert.NoError(t, err) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A5", "A5", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A5", "A5", style)) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleFont.xlsx"))) } @@ -782,7 +767,7 @@ func TestSetCellStyleProtection(t *testing.T) { t.FailNow() } - xlsx.SetCellStyle("Sheet2", "A6", "A6", style) + assert.NoError(t, xlsx.SetCellStyle("Sheet2", "A6", "A6", style)) err = xlsx.SaveAs(filepath.Join("test", "TestSetCellStyleProtection.xlsx")) if !assert.NoError(t, err) { t.FailNow() @@ -818,7 +803,8 @@ func TestGetPicture(t *testing.T) { t.FailNow() } - file, raw := xlsx.GetPicture("Sheet1", "F21") + file, raw, err := xlsx.GetPicture("Sheet1", "F21") + assert.NoError(t, err) if !assert.NotEmpty(t, filepath.Join("test", file)) || !assert.NotEmpty(t, raw) || !assert.NoError(t, ioutil.WriteFile(filepath.Join("test", file), raw, 0644)) { @@ -826,12 +812,14 @@ func TestGetPicture(t *testing.T) { } // Try to get picture from a worksheet that doesn't contain any images. - file, raw = xlsx.GetPicture("Sheet3", "I9") + file, raw, err = xlsx.GetPicture("Sheet3", "I9") + assert.NoError(t, err) assert.Empty(t, file) assert.Empty(t, raw) // Try to get picture from a cell that doesn't contain an image. - file, raw = xlsx.GetPicture("Sheet2", "A2") + file, raw, err = xlsx.GetPicture("Sheet2", "A2") + assert.NoError(t, err) assert.Empty(t, file) assert.Empty(t, raw) @@ -850,7 +838,8 @@ func TestGetPicture(t *testing.T) { t.FailNow() } - file, raw = xlsx.GetPicture("Sheet1", "F21") + file, raw, err = xlsx.GetPicture("Sheet1", "F21") + assert.NoError(t, err) if !assert.NotEmpty(t, filepath.Join("test", file)) || !assert.NotEmpty(t, raw) || !assert.NoError(t, ioutil.WriteFile(filepath.Join("test", file), raw, 0644)) { @@ -858,7 +847,8 @@ func TestGetPicture(t *testing.T) { } // Try to get picture from a local storage file that doesn't contain an image. - file, raw = xlsx.GetPicture("Sheet1", "F22") + file, raw, err = xlsx.GetPicture("Sheet1", "F22") + assert.NoError(t, err) assert.Empty(t, file) assert.Empty(t, raw) } @@ -913,7 +903,9 @@ func TestCopySheet(t *testing.T) { } xlsx.SetCellValue("Sheet4", "F1", "Hello") - assert.NotEqual(t, "Hello", xlsx.GetCellValue("Sheet1", "F1")) + val, err := xlsx.GetCellValue("Sheet1", "F1") + assert.NoError(t, err) + assert.NotEqual(t, "Hello", val) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestCopySheet.xlsx"))) } @@ -1101,7 +1093,7 @@ func TestInsertCol(t *testing.T) { t.FailNow() } - xlsx.InsertCol(sheet1, "A") + assert.NoError(t, xlsx.InsertCol(sheet1, "A")) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestInsertCol.xlsx"))) } @@ -1118,8 +1110,8 @@ func TestRemoveCol(t *testing.T) { xlsx.MergeCell(sheet1, "A1", "B1") xlsx.MergeCell(sheet1, "A2", "B2") - xlsx.RemoveCol(sheet1, "A") - xlsx.RemoveCol(sheet1, "A") + assert.NoError(t, xlsx.RemoveCol(sheet1, "A")) + assert.NoError(t, xlsx.RemoveCol(sheet1, "A")) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestRemoveCol.xlsx"))) } @@ -1242,18 +1234,11 @@ func TestSetSheetRow(t *testing.T) { xlsx.SetSheetRow("Sheet1", "B27", &[]interface{}{"cell", nil, int32(42), float64(42), time.Now().UTC()}) - assert.Panics(t, func() { - xlsx.SetSheetRow("Sheet1", "", &[]interface{}{"cell", nil, 2}) - }) - - assert.Panics(t, func() { - xlsx.SetSheetRow("Sheet1", "B27", []interface{}{}) - }) - - assert.Panics(t, func() { - xlsx.SetSheetRow("Sheet1", "B27", &xlsx) - }) + assert.EqualError(t, xlsx.SetSheetRow("Sheet1", "", &[]interface{}{"cell", nil, 2}), + `cannot convert cell "" to coordinates: invalid cell name ""`) + assert.EqualError(t, xlsx.SetSheetRow("Sheet1", "B27", []interface{}{}), `pointer to slice expected`) + assert.EqualError(t, xlsx.SetSheetRow("Sheet1", "B27", &xlsx), `pointer to slice expected`) assert.NoError(t, xlsx.SaveAs(filepath.Join("test", "TestSetSheetRow.xlsx"))) } @@ -1267,16 +1252,15 @@ func TestOutlineLevel(t *testing.T) { xlsx.SetColOutlineLevel("Sheet2", "B", 2) xlsx.SetRowOutlineLevel("Sheet1", 2, 250) - assert.Panics(t, func() { - xlsx.SetRowOutlineLevel("Sheet1", 0, 1) - }) + assert.EqualError(t, xlsx.SetRowOutlineLevel("Sheet1", 0, 1), "invalid row number 0") + level, err := xlsx.GetRowOutlineLevel("Sheet1", 2) + assert.NoError(t, err) + assert.Equal(t, uint8(250), level) - assert.Equal(t, uint8(250), xlsx.GetRowOutlineLevel("Sheet1", 2)) + _, err = xlsx.GetRowOutlineLevel("Sheet1", 0) + assert.EqualError(t, err, `invalid row number 0`) - assert.Panics(t, func() { - xlsx.GetRowOutlineLevel("Sheet1", 0) - }) - err := xlsx.SaveAs(filepath.Join("test", "TestOutlineLevel.xlsx")) + err = xlsx.SaveAs(filepath.Join("test", "TestOutlineLevel.xlsx")) if !assert.NoError(t, err) { t.FailNow() } @@ -1418,7 +1402,7 @@ func prepareTestBook4() (*File, error) { func fillCells(xlsx *File, sheet string, colCount, rowCount int) { for col := 1; col <= colCount; col++ { for row := 1; row <= rowCount; row++ { - cell := MustCoordinatesToCellName(col, row) + cell, _ := CoordinatesToCellName(col, row) xlsx.SetCellStr(sheet, cell, cell) } } |