diff options
Diffstat (limited to 'cell.go')
-rw-r--r-- | cell.go | 38 |
1 files changed, 25 insertions, 13 deletions
@@ -39,6 +39,7 @@ func (f *File) mergeCellsParser(xlsx *xlsxWorksheet, axis string) string { // float64 // string // []byte +// time.Duration // time.Time // nil // @@ -46,6 +47,30 @@ func (f *File) mergeCellsParser(xlsx *xlsxWorksheet, axis string) string { // set numbers format by SetCellStyle() method. func (f *File) SetCellValue(sheet, axis string, value interface{}) { switch t := value.(type) { + case float32: + f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float32)), 'f', -1, 32)) + case float64: + f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float64)), 'f', -1, 64)) + case string: + f.SetCellStr(sheet, axis, t) + case []byte: + f.SetCellStr(sheet, axis, string(t)) + case time.Duration: + f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(time.Duration).Seconds()/86400), 'f', -1, 32)) + f.setDefaultTimeStyle(sheet, axis, 21) + case time.Time: + f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(timeToExcelTime(timeToUTCTime(value.(time.Time)))), 'f', -1, 64)) + f.setDefaultTimeStyle(sheet, axis, 22) + case nil: + f.SetCellStr(sheet, axis, "") + default: + f.setCellIntValue(sheet, axis, value) + } +} + +// setCellIntValue provides function to set int value of a cell. +func (f *File) setCellIntValue(sheet, axis string, value interface{}) { + switch value.(type) { case int: f.SetCellInt(sheet, axis, value.(int)) case int8: @@ -66,19 +91,6 @@ func (f *File) SetCellValue(sheet, axis string, value interface{}) { f.SetCellInt(sheet, axis, int(value.(uint32))) case uint64: f.SetCellInt(sheet, axis, int(value.(uint64))) - case float32: - f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float32)), 'f', -1, 32)) - case float64: - f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(value.(float64)), 'f', -1, 64)) - case string: - f.SetCellStr(sheet, axis, t) - case []byte: - f.SetCellStr(sheet, axis, string(t)) - case time.Time: - f.SetCellDefault(sheet, axis, strconv.FormatFloat(float64(timeToExcelTime(timeToUTCTime(value.(time.Time)))), 'f', -1, 64)) - f.setDefaultTimeStyle(sheet, axis) - case nil: - f.SetCellStr(sheet, axis, "") default: f.SetCellStr(sheet, axis, fmt.Sprintf("%v", value)) } |