【问题标题】:wrong output in converting date format data from an excel sheet to csv file in python在python中将日期格式数据从excel表转换为csv文件时输出错误
【发布时间】:2017-07-20 04:25:41
【问题描述】:

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

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

【问题讨论】:

    标签: python excel csv


    【解决方案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'是你想要的函数

    【讨论】:

    • xldate_as_tuple 需要在哪里应用我正在做的wr.writerow(worksheet.row_values(rownum))
    猜你喜欢
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2018-01-17
    • 2015-09-30
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多