summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cell.go5
-rw-r--r--cell_test.go29
2 files changed, 33 insertions, 1 deletions
diff --git a/cell.go b/cell.go
index eb60441..ebf4681 100644
--- a/cell.go
+++ b/cell.go
@@ -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)