我在阅读日期和时间上使用Python遇到了麻烦


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,它易于使用,具有更多功能,具有更好的文档,可以积极维护,并生成当前的.xlsx文件而不是过时的.xls文件。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</p>

>>> 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')

最新更新