我需要编写一个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()
但是,所有日期格式都更改为整数。例如:
4/13/2018 - > 43203
无论如何,我可以改变我的代码以保持日期格式。我的日期格式被认为是MM / DD / YYYY
感谢。
答案 0 :(得分:0)
根据xlrd document,我猜你必须自己进行转换,因为excel中没有存储日期类型。
正如文件所说,Excel for Windows stores dates by default as the number of days (or fraction thereof) since 1899-12-31T00:00:00
。 43203
的日期可以这样计算:
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)