我有一个excel,它是一个DateTime格式。但是当我读到表格时,它会读作序列号。
例如,在工作表中08/03/2015
,但xlrd读为42219
。
代码非常简单
workbook = xlrd.open_workbook(file_contents=excel_contents)
the_sheet = workbook.sheet_names()[0]
number_of_rows = the_sheet.nrows - 1
curr_row = 0
data = []
while curr_row < number_of_rows:
curr_row += 1
air_date = the_sheet.cell_value(curr_row, 1)
air_time = the_sheet.cell_value(curr_row, 2)
schedule_time = '{}:{}'.format(air_date, air_time)
unaware = datetime.strptime(schedule_time, '%m/%d/%Y:%I:%M %p')
我用Python翻译成air_date
的{{1}}因为格式不同而爆炸。
这是excel的例子。
这是我得到的错误
builtins.ValueError ValueError:时间数据'42219.0:06:00 AM'没有 匹配格式'%m /%d /%Y:%I:%M%p'
答案 0 :(得分:1)
您似乎需要使用xldate_as_tuple
将excel格式转换为python格式(请参阅documentation和this already existing question,您可以在其中找到将日期转换为python的格式。 / p>
xldate_as_tuple:
将Excel编号(假定代表日期,日期时间或时间)转换为适合于提供给datetime或mx.DateTime构造函数的元组。