From 3ee3c38f9c63de3782fad21aae9c05ee0530fc32 Mon Sep 17 00:00:00 2001 From: xuri Date: Sun, 23 Jan 2022 00:32:34 +0800 Subject: Fix file corrupted in some cases, check file extension and format code Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case New exported error ErrWorkbookExt has been added, and check file extension on save the workbook Format source code with `gofumpt` --- excelize_test.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'excelize_test.go') diff --git a/excelize_test.go b/excelize_test.go index c78797d..1548cc6 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -175,7 +175,10 @@ func TestSaveFile(t *testing.T) { if !assert.NoError(t, err) { t.FailNow() } - assert.NoError(t, f.SaveAs(filepath.Join("test", "TestSaveFile.xlsx"))) + assert.EqualError(t, f.SaveAs(filepath.Join("test", "TestSaveFile.xlsb")), ErrWorkbookExt.Error()) + for _, ext := range []string{".xlam", ".xlsm", ".xlsx", ".xltm", ".xltx"} { + assert.NoError(t, f.SaveAs(filepath.Join("test", fmt.Sprintf("TestSaveFile%s", ext)))) + } assert.NoError(t, f.Close()) f, err = OpenFile(filepath.Join("test", "TestSaveFile.xlsx")) if !assert.NoError(t, err) { @@ -189,7 +192,7 @@ func TestSaveAsWrongPath(t *testing.T) { f, err := OpenFile(filepath.Join("test", "Book1.xlsx")) assert.NoError(t, err) // Test write file to not exist directory. - assert.EqualError(t, f.SaveAs(""), "open .: is a directory") + assert.Error(t, f.SaveAs(filepath.Join("x", "Book1.xlsx"))) assert.NoError(t, f.Close()) } @@ -1305,7 +1308,8 @@ func TestDeleteSheetFromWorkbookRels(t *testing.T) { func TestAttrValToInt(t *testing.T) { _, err := attrValToInt("r", []xml.Attr{ - {Name: xml.Name{Local: "r"}, Value: "s"}}) + {Name: xml.Name{Local: "r"}, Value: "s"}, + }) assert.EqualError(t, err, `strconv.Atoi: parsing "s": invalid syntax`) } -- cgit v1.2.1