首页 文章

将Excel转换为CSV - 正确转换日期字段[复制]

提问于
浏览
0

这个问题在这里已有答案:

所以,我现在有我的Excel2CSV功能,但遇到另一个问题,其中我的Excel文件中的日期字段('日期打开','日期关闭')格式化为Excel中的日期被转换为转换为整数值CSV(例如5/1/1995转换为34820) .

我希望它只是将那些日期写成纯文本(即1995年5月1日 - 1995年5月1日,或类似的东西 . 人类可读的东西 . )

def Excel2CSV(ExcelFile, SheetName, CSVFile):
     import xlrd
     import csv
     print "Acquiring " + ExcelFile + "..."
     workbook = xlrd.open_workbook(ExcelFile)
     print "Locating " + SheetName + " Worksheet..."
     worksheet = workbook.sheet_by_name(SheetName)
     print "Creating " + CSVFile + "..."
     csvfile = open(CSVFile, 'wb')
     print "Preparing to write CSV file..."
     wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL)
     print "Writing CSV..."
     for rownum in xrange(worksheet.nrows):
         wr.writerow(
             list(x.encode('utf-8') if type(x) == type(u'') else x
                  for x in worksheet.row_values(rownum)))
     print "Closing CSV File..."
     csvfile.close()
     print "CSV successfully written."
     return CSVFile

我不确定如何按名称或值捕获日期字段,然后将值正确转换为纯文本 . 任何帮助表示赞赏 .

1 回答

  • 0

    要将日期编号转换为Python datetime ,请使用以下公式:

    dt = datetime.datetime(1899, 12, 30) + datetime.timedelta(days=num)
    

    完成后,您可以使用_1692340将其转换为默认格式,或使用 dt.strftime(format) 指定您自己的格式 . 见datetime documentation

相关问题