在Excel中将date格式数据转换为python中的csv文件时输出错误

我有这个excel表,我试图将这个excel表转换成csv文件。 本表中的列是以date格式(如7/4/2017年7 date )的数据列。 我写了这段代码,但是这不是正确地转换date字段数据:

 import xlrd import csv def Excel2CSV(ExcelFile, SheetName, CSVFile): workbook = xlrd.open_workbook(ExcelFile) worksheet = workbook.sheet_by_name(SheetName) csvfile = open(CSVFile, 'w',encoding='utf8') wr = csv.writer(csvfile,delimiter=';') for rownum in range(worksheet.nrows): wr.writerow(worksheet.row_values(rownum)) csvfile.close() 

我在Excel中的示例数据是这样的:

 4/7/2017 value02 value03 4/5/2017 value12 value13 4/14/2017 value22 value23 4/10/2017 value32 value33 

当我执行我的上面的代码,这是在输出中看到:

 42832.0;value02;value03 42830.0;value12;value13 42839.0;value22;value23 42835.0;value32;value33 

正如你所看到的date提交数据没有得到正确的转换。 我在这里犯了什么错误?

假设您使用XLRD软件包来阅读文件,可以在http://xlrd.readthedocs.io/en/latest/dates.html上find答案。

基本上,date存储为“自…..之后的天数”,并且只是格式化为在Excel中查看时显示为date。

这里有更多细节http://xlrd.readthedocs.io/en/latest/api.html#module-xlrd.xldate

'xldate_as_tuple'是你想要的function