使用openpyxel的Python excel编辑在另一个单元格中更改日期

问题描述 投票:0回答:1

使用openpyxl加载已存在的excel文件,更改单元格中的值然后保存文件时,另一个值(日期)也会更改。我似乎无法找到这种奇怪行为背后的原因/错误。

这是我的excel文件dates.xlsx

Title   Date
Date1   01.01.1900
Date2   02.01.1900
Date3   03.01.1900

这是我修改单元格值并保存更改的方法:

from openpyxl import load_workbook

fileName = "./dates.xlsx"
wb = load_workbook(filename=fileName)
sheet = wb.active
sheet.cell(row=4, column=3).value = "new value"
wb.save(fileName)
wb.close()

预期结果:

Title   Date
Date1   01.01.1900
Date2   02.01.1900
Date3   03.01.1900   new value

实际结果:

Title   Date
Date1   00.01.1900
Date2   02.01.1900
Date3   03.01.1900   new value

这只发生在日期。任何想法如何处理这个?

excel pandas date edit openpyxl
1个回答
1
投票

问题实际上与OOXML中的日期规范和OOXML中的一些错误有关。要解决此问题,您可以在保存工作簿时设置iso_dates=True。这将至少在XML中保存明确的表示。其他应用程序的其他内容(Excel认为序列号0是1900年1月0日)是另一回事。基本上,文件格式根本不适合历史日期。

© www.soinside.com 2019 - 2024. All rights reserved.