Python xlsx 到 csv,不将日期更改为整数

Python xlsx to csv without change date to interger

我需要编写一个 python 脚本来将 .xlsx 文件更改为 .csv 文件: 我的代码:

import xlrd
import csv

def csv_from_excel():

    wb = xlrd.open_workbook("Book1.xlsx")
    sh = wb.sheet_by_name('Att1FF5.tmp')
    your_csv_file = open('your_csv_file.csv', 'wb')
    wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)

    for rownum in xrange(sh.nrows):
        wr.writerow([unicode(entry).encode("utf-8") for entry in sh.row_values(rownum)])

    your_csv_file.close()

csv_from_excel()

但是,所有日期格式都更改为整数。例如:

2018 年 4 月 13 日 --> 43203

所以无论如何我可以更改我的代码以保持日期格式。我的日期格式被认为是 MM/DD/YYYY

谢谢。

根据 xlrd document,我猜你必须自己进行转换,因为 excel.

中没有存储日期类型

正如文档所说,Excel for Windows stores dates by default as the number of days (or fraction thereof) since 1899-12-31T00:00:0043203的日期可以这样计算:

import datetime, xlrd

xlrd.xldate.xldate_as_tuple(43203, 0)  # returns (2018, 4, 13, 0, 0, 0)
xlrd.xldate.xldate_as_datetime(43203, 0)  # returns datetime.datetime(2018, 4, 13, 0, 0)