在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