Issue: Numbers with some special formats reads as date
This commit is contained in:
parent
18a6340e66
commit
86ef51ec15
7
col.go
7
col.go
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -53,13 +54,19 @@ func (xf *XfRk) String(wb *WorkBook) string {
|
|||||||
fNo := wb.Xfs[idx].formatNo()
|
fNo := wb.Xfs[idx].formatNo()
|
||||||
if fNo >= 164 { // user defined format
|
if fNo >= 164 { // user defined format
|
||||||
if formatter := wb.Formats[fNo]; formatter != nil {
|
if formatter := wb.Formats[fNo]; formatter != nil {
|
||||||
|
if (strings.Contains(formatter.str, "#") || strings.Contains(formatter.str, ".00")){
|
||||||
|
//If format contains # or .00 then this is a number
|
||||||
|
return xf.Rk.String()
|
||||||
|
}else{
|
||||||
i, f, isFloat := xf.Rk.number()
|
i, f, isFloat := xf.Rk.number()
|
||||||
if !isFloat {
|
if !isFloat {
|
||||||
f = float64(i)
|
f = float64(i)
|
||||||
}
|
}
|
||||||
t := timeFromExcelTime(f, wb.dateMode == 1)
|
t := timeFromExcelTime(f, wb.dateMode == 1)
|
||||||
|
|
||||||
return yymmdd.Format(t, formatter.str)
|
return yymmdd.Format(t, formatter.str)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// see http://www.openoffice.org/sc/excelfileformat.pdf Page #174
|
// see http://www.openoffice.org/sc/excelfileformat.pdf Page #174
|
||||||
} else if 14 <= fNo && fNo <= 17 || fNo == 22 || 27 <= fNo && fNo <= 36 || 50 <= fNo && fNo <= 58 { // jp. date format
|
} else if 14 <= fNo && fNo <= 17 || fNo == 22 || 27 <= fNo && fNo <= 36 || 50 <= fNo && fNo <= 58 { // jp. date format
|
||||||
i, f, isFloat := xf.Rk.number()
|
i, f, isFloat := xf.Rk.number()
|
||||||
|
Loading…
Reference in New Issue
Block a user