将日期格式数据从Excel工作表转换为python中的csv文件时输出错误

时间:2017-07-20 04:25:42

标签: python excel csv

我有这张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

如您所见,日期归档数据未正确转换。我在这里犯了什么错误?

1 个答案:

答案 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'是你想要的功能