0

我编写了一个 python 脚本,它只通过复制一些列从现有的 Excel 文件中创建一个新的 Excel 文件。为此,我使用了 tablib 库,但是在将日期作为值的列时遇到了错误。

在原始文件中,格式是这样的 11/23/2007,但在输出文件中是这样的 39409。

我正在保存这样的excel文件:

with open('output-2.xls', 'wb') as f:
    new_dataset.headers = headers
    f.write(new_dataset.export('xls'))

当我打印 new_dataset 时,该列将datetime.datetime(11, 23, 2007, 0, 0)对象作为值

那么,如何在输出文件中保留日期格式?

4

1 回答 1

0

您可以在数据中使用 dict 来保留它。

我这样做是为了填充 tablib 数据集:

datarows = [ {'column1': 1, 'column2': datetime.datetime(2021,10,1) } ]
new_dataset = tablib.Dataset()
new_dataset.dict = datarows  #<- here populate the dataset

使用 dict 您不需要设置标题,并且数据集保留数据类型。然后,导出:

with open('output-2.xls', 'wb') as f:
    f.write(new_dataset.export('xls'))

所以 tablib 在导出日期时不会加上引号。

文档:https ://tablib.readthedocs.io/en/stable/api/#tablib.Dataset.dict

于 2021-12-24T13:21:55.313 回答