我有这张excel
表格,我正在尝试将此excel
表单转换为csv
文件。此工作表中的列中包含date
格式数据的列(如7/4/2017
)。我编写了这段代码,但这并未正确转换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
如您所见,日期归档数据未正确转换。我在这里犯了什么错误?
答案 0 :(得分:1)
假设您正在使用XLRD包阅读文件,您可以在http://xlrd.readthedocs.io/en/latest/dates.html找到答案
基本上日期存储为“自......以来的天数”,并且只是格式化为在Excel中查看时的日期。
这里有更多细节 http://xlrd.readthedocs.io/en/latest/api.html#module-xlrd.xldate
'xldate_as_tuple'是你想要的功能