summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cell.go3
-rw-r--r--cell_test.go10
-rw-r--r--sheet.go5
-rw-r--r--sheet_test.go2
4 files changed, 18 insertions, 2 deletions
diff --git a/cell.go b/cell.go
index 11c6836..bdda48c 100644
--- a/cell.go
+++ b/cell.go
@@ -770,6 +770,9 @@ func (f *File) formattedValue(s int, v string) string {
if ok != nil {
return ok(v, builtInNumFmt[numFmtId])
}
+ if styleSheet == nil || styleSheet.NumFmts == nil {
+ return v
+ }
for _, xlsxFmt := range styleSheet.NumFmts.NumFmt {
if xlsxFmt.NumFmtID == numFmtId {
format := strings.ToLower(xlsxFmt.FormatCode)
diff --git a/cell_test.go b/cell_test.go
index a855344..f707256 100644
--- a/cell_test.go
+++ b/cell_test.go
@@ -299,4 +299,14 @@ func TestFormattedValue(t *testing.T) {
assert.NoError(t, err)
v = f.formattedValue(1, "43528")
assert.Equal(t, "03/04/2019", v)
+
+ // formatted value with no built-in number format ID
+ assert.NoError(t, err)
+ f.Styles.NumFmts = nil
+ numFmtID := 5
+ 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/sheet.go b/sheet.go
index aaa72cc..44067fe 100644
--- a/sheet.go
+++ b/sheet.go
@@ -37,8 +37,9 @@ import (
// appending the new sheet.
func (f *File) NewSheet(name string) int {
// Check if the worksheet already exists
- if f.GetSheetIndex(name) != -1 {
- return f.SheetCount
+ index := f.GetSheetIndex(name)
+ if index != -1 {
+ return index
}
f.DeleteSheet(name)
f.SheetCount++
diff --git a/sheet_test.go b/sheet_test.go
index 56f5f46..1a59b65 100644
--- a/sheet_test.go
+++ b/sheet_test.go
@@ -71,6 +71,8 @@ func TestNewSheet(t *testing.T) {
// delete original sheet
f.DeleteSheet(f.GetSheetName(f.GetSheetIndex("Sheet1")))
assert.NoError(t, f.SaveAs(filepath.Join("test", "TestNewSheet.xlsx")))
+ // create new worksheet with already exists name
+ assert.Equal(t, f.GetSheetIndex("Sheet2"), f.NewSheet("Sheet2"))
}
func TestSetPane(t *testing.T) {