问题
直接从 excel 读取日期类型,是一个数字,如下:
读取结果:44377.0,是一个数字
解决
xldate_as_tuple
xlrd.xldate_as_tuple(xldate,datemode)
参数:
- xldate: 要处理的单元格值
- datemode:时间基准
- 0:代表1900-01-01为基准,常使用1900为基准
- 1:代表1904-01-01为基准
返回值:返回一个元组,类似于(year,month,day,hour,minute,nearest_second)
注意: 仅适用于date类型的excel单元格,不适用于time类型的单元格,对于time类型的单元格值,报错:XLDateAmbiguous
xldate_as_datetime
xlrd.xldate.xldate_as_datetime(xldate,datemode)
参数:
xldate: 要处理的单元格值
datemode:时间基准
- 0:代表1900-01-01为基准,常使用1900为基准
- 1:代表1904-01-01为基准
返回值: datetime对象,格式 year-month-day hour
second
注意: 对于 time 类型的单元格值,转化后自动以基准补充;如基准选择 1900 时,时间 13:09:30
转化后为:1900-01-01 23:08:00
例子
import xlrd
from xlrd import xldate_as_tuple
excel=xlrd.open_workbook(r'./duochangjia-jun.xls')
sheet=excel.sheet_by_index(0)
cols=sheet.col_values(10)
row=sheet.row_values(1,1,13)
print(row[10])
print("关键==========================")
date_t = xldate_as_tuple(row[10], 0)
print(date_t)
date_t=date_t[:3]
date_str="/".join( [str(item) for item in date_t] )
print("结果:"+date_str)
