From a96ed3e252cb3a487bc53bd4877df99af14143cd Mon Sep 17 00:00:00 2001 From: akustikov Date: Sat, 12 Dec 2020 00:00:57 +0300 Subject: [PATCH] fix PR issues --- .gitignore | 3 +++ cell.go | 6 +++--- cell_test.go | 32 ++++++++------------------------ crypt_test.go | 2 +- excelize_test.go | 2 +- test/Items.xlsx | Bin 5660 -> 0 bytes 6 files changed, 16 insertions(+), 29 deletions(-) delete mode 100644 test/Items.xlsx diff --git a/.gitignore b/.gitignore index 7e82ee290c..ce92812619 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ ~$*.xlsx test/Test*.xlsx test/Test*.xlsm +# generated files +test/BadEncrypt.xlsx +test/BadWorkbook.SaveAsEmptyStruct.xlsx test/*.png *.out *.test diff --git a/cell.go b/cell.go index c797974764..22adefd454 100644 --- a/cell.go +++ b/cell.go @@ -766,11 +766,11 @@ func (f *File) formattedValue(s int, v string) string { if s >= len(styleSheet.CellXfs.Xf) { return v } - if styleSheet.CellXfs.Xf[s].NumFmtID == nil { - return v + var numFmtID int + if styleSheet.CellXfs.Xf[s].NumFmtID != nil { + numFmtID = *styleSheet.CellXfs.Xf[s].NumFmtID } - numFmtID := *styleSheet.CellXfs.Xf[s].NumFmtID ok := builtInNumFmtFunc[numFmtID] if ok != nil { return ok(v, builtInNumFmt[numFmtID]) diff --git a/cell_test.go b/cell_test.go index 23c8474ddb..8d3f77482d 100644 --- a/cell_test.go +++ b/cell_test.go @@ -301,7 +301,7 @@ func TestSetCellRichText(t *testing.T) { assert.EqualError(t, f.SetCellRichText("Sheet1", "A", richTextRun), `cannot convert cell "A" to coordinates: invalid cell name "A"`) } -func TestFormattedValue(t *testing.T) { +func TestFormattedValue2(t *testing.T) { f := NewFile() v := f.formattedValue(0, "43528") assert.Equal(t, "43528", v) @@ -320,7 +320,6 @@ func TestFormattedValue(t *testing.T) { assert.Equal(t, "03/04/2019", v) // formatted value with no built-in number format ID - assert.NoError(t, err) numFmtID := 5 f.Styles.CellXfs.Xf = append(f.Styles.CellXfs.Xf, xlsxXf{ NumFmtID: &numFmtID, @@ -329,31 +328,16 @@ func TestFormattedValue(t *testing.T) { assert.Equal(t, "43528", v) // formatted value with invalid number format ID - assert.NoError(t, err) f.Styles.CellXfs.Xf = append(f.Styles.CellXfs.Xf, xlsxXf{ NumFmtID: nil, }) v = f.formattedValue(3, "43528") - assert.Equal(t, "43528", v) -} -func TestInvalidNumberFormatsLoad(t *testing.T) { - f, err := OpenFile(filepath.Join("test", "Items.xlsx")) - assert.NoError(t, err) - - rows, err := f.Rows("Sheet 1") - assert.NoError(t, err) - - var rowCount int - for rows.Next() { - rowCount++ - row, err := rows.Columns() - assert.NoError(t, err) - if rowCount > 1 { - assert.Equal(t, "0.5", row[13]) - assert.Equal(t, "12/08/2020", row[14]) - } - } - - assert.Equal(t, 20, rowCount) + // formatted value with empty number format + f.Styles.NumFmts = nil + f.Styles.CellXfs.Xf = append(f.Styles.CellXfs.Xf, xlsxXf{ + NumFmtID: &numFmtID, + }) + v = f.formattedValue(1, "43528") + assert.Equal(t, "43528", v) } diff --git a/crypt_test.go b/crypt_test.go index d98b97b577..6f712c1944 100644 --- a/crypt_test.go +++ b/crypt_test.go @@ -19,7 +19,7 @@ import ( func TestEncrypt(t *testing.T) { f, err := OpenFile(filepath.Join("test", "encryptSHA1.xlsx"), Options{Password: "password"}) assert.NoError(t, err) - assert.EqualError(t, f.SaveAs(filepath.Join("test", "TestBadEncrypt.xlsx"), Options{Password: "password"}), "not support encryption currently") + assert.EqualError(t, f.SaveAs(filepath.Join("test", "BadEncrypt.xlsx"), Options{Password: "password"}), "not support encryption currently") } func TestEncryptionMechanism(t *testing.T) { diff --git a/excelize_test.go b/excelize_test.go index 89e3749a6f..1b4887275b 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -257,7 +257,7 @@ func TestBrokenFile(t *testing.T) { t.Run("SaveAsEmptyStruct", func(t *testing.T) { // Test write file with broken file struct with given path. - assert.NoError(t, f.SaveAs(filepath.Join("test", "TestBadWorkbook.SaveAsEmptyStruct.xlsx"))) + assert.NoError(t, f.SaveAs(filepath.Join("test", "BadWorkbook.SaveAsEmptyStruct.xlsx"))) }) t.Run("OpenBadWorkbook", func(t *testing.T) { diff --git a/test/Items.xlsx b/test/Items.xlsx deleted file mode 100644 index e2b233fb6dbfccfdefa333c530676a27a26296b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5660 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