登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

xlrd 读取excel日期类型

问题

直接从 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:minute: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)

原文出处:https://malaoshi.top/show_1IX1ljbh7wBB.html