编程笔记

lifelong learning & practice makes perfect

golang excelize read date type data

  1. excelize 介绍
1
2


  1. 时间格式读取

excel表格操作库,对日期格式的数据读写还不是很完善,能识别的日期格式返回一个01-02-06(day-month-day)格式的字符串,无法识别时直接返回的是excel表格中的原始数据,一个浮点型数,在excel中支持很多种日期格式显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
file,err:=excelize.OpenFile(filepath)
if err!=nil{
return
}

strTime,err:=file.GetCellValue("Sheet1","A1")
if err!=nil{
return
}

// 方式一:正常识别,通过time的库函数转换
resTime, err = time.ParseInLocation("01-02-06", strTime, time.Local)

// 方式二:未正常识别,先转换成int型数据再转换
intTime,err:=strconv.Atoi(strTime)
if err!=nil{
return
}

//转换为time.Time
time.Time=excelize.ExcelDateToTime(float64(intTime),false)
  1. 时间格式写入
    通过excelize写入时间格式的数据到文件,需要设置单元格格式,excelize支持写入的格式包含有time.Time,但是写入时需要使用UTC格式。
1
2
3
4
5
6
7
8
file:=excelize.NewFile()
//style 格式编号
style,err:=file.NewStyle(`{"number_format": 14}`)
if err!=nil{
return
}
file.SetCellValue("Sheet1","A1",time.Now().UTC())
file.SetCellStyle("Sheet1","A1","A1",style)

欢迎关注我的其它发布渠道