diff options
-rw-r--r-- | cell.go | 5 | ||||
-rw-r--r-- | cell_test.go | 29 |
2 files changed, 33 insertions, 1 deletions
@@ -1292,6 +1292,9 @@ func (f *File) formattedValue(s int, v string, raw bool) string { return v } styleSheet := f.stylesReader() + if styleSheet.CellXfs == nil { + return v + } if s >= len(styleSheet.CellXfs.Xf) { return v } @@ -1306,7 +1309,7 @@ func (f *File) formattedValue(s int, v string, raw bool) string { if ok := builtInNumFmtFunc[numFmtID]; ok != nil { return ok(v, builtInNumFmt[numFmtID], date1904) } - if styleSheet == nil || styleSheet.NumFmts == nil { + if styleSheet.NumFmts == nil { return v } for _, xlsxFmt := range styleSheet.NumFmts.NumFmt { diff --git a/cell_test.go b/cell_test.go index f741211..6689c36 100644 --- a/cell_test.go +++ b/cell_test.go @@ -744,6 +744,35 @@ func TestFormattedValue2(t *testing.T) { } } +func TestFormattedValueNilXfs(t *testing.T) { + // Set the CellXfs to nil and verify that the formattedValue function does not crash. + f := NewFile() + f.Styles.CellXfs = nil + assert.Equal(t, "43528", f.formattedValue(3, "43528", false)) +} + +func TestFormattedValueNilNumFmts(t *testing.T) { + // Set the NumFmts value to nil and verify that the formattedValue function does not crash. + f := NewFile() + f.Styles.NumFmts = nil + assert.Equal(t, "43528", f.formattedValue(3, "43528", false)) +} + +func TestFormattedValueNilWorkbook(t *testing.T) { + // Set the Workbook value to nil and verify that the formattedValue function does not crash. + f := NewFile() + f.WorkBook = nil + assert.Equal(t, "43528", f.formattedValue(3, "43528", false)) +} + +func TestFormattedValueNilWorkbookPr(t *testing.T) { + // Set the WorkBook.WorkbookPr value to nil and verify that the formattedValue function does not + // crash. + f := NewFile() + f.WorkBook.WorkbookPr = nil + assert.Equal(t, "43528", f.formattedValue(3, "43528", false)) +} + func TestSharedStringsError(t *testing.T) { f, err := OpenFile(filepath.Join("test", "Book1.xlsx"), Options{UnzipXMLSizeLimit: 128}) assert.NoError(t, err) |