我在使用python的Excel表格中阅读date和时间时遇到麻烦

import xlwt import xlrd, xlutils wb = xlwt.Workbook() outsheet = wb.add_sheet('Page 1') files = [r'c:\file1', r'C:c:\file2',] outrow = 0 for f in files: insheet = xlrd.open_workbook(f,formatting_info=True).sheets()[0] for row in range(insheet.nrows): for col in range(insheet.ncols): outsheet.write(outrow, col,insheet.cell_value(row, col)) outrow += 1 wb.save(r'C:\combined.xls') 

我得到输出为
42753.61492
42753.61492
42753.61492
42753.61492
42753.61492

在那里我正在寻找这样的东西
2017-01-18 14:45:29 a
2017-01-18 14:45:29 a
2017-01-18 14:45:29 a
2017-01-18 14:45:29 a
2017-01-20 09:10:06 a

在编写输出工作簿时,只需要设置数字格式,就像在Excel中一样。 这是通过在你的outsheet.write()调用中包含另一个参数来完成的。

不幸的是,xlwt的“官方”文档很难使用。 更好的是旧的教程PDF 。 在那里你应该阅读样式(XFStyle和easyxf)。

或者甚至更好的是将xlwt完全丢弃 ,并切换到XlsxWriter ,它更易于使用,具有更多的function,具有更好的文档 ,被主动维护,并生成当前的.xlsx文件而不是过时的.xls文件。

 >>> import datetime >>> datetime.datetime(1899,12,30) + datetime.timedelta(days=42753.61492) datetime.datetime(2017, 1, 18, 14, 45, 29, 88000) 

你可以试试这个:

 from datetime import datetime import xlwt import xlrd, xlutils wb = xlwt.Workbook() outsheet = wb.add_sheet('Page 1') files = [r'c:\file1', r'C:c:\file2',] outrow = 0 for f in files: insheet = xlrd.open_workbook(f,formatting_info=True).sheets()[0] for row in range(insheet.nrows): for col in range(insheet.ncols): outsheet.write(outrow, col,datetime.fromtimestamp(float(insheet.cell_value(row, col)))) outrow += 1 wb.save(r'C:\combined.xls')