这是我的代码。当我尝试用注释保存XLXS时,它会失败。我怎么知道什么时候可以再次节省。
from openpyxl import load_workbook
import datetime
filename = u"large_table.xlsx"
model = load_workbook(filename)
model.properties.lastPrinted = datetime.datetime.now()
model.save(filename)
model.properties.lastPrinted = datetime.datetime.now()
model.save(filename)
追溯:看来self.workbook.vba_archive
意外设置为无。
Traceback (most recent call last):
File "D:/h32workspace/trunk/event_editor/eric6/model/test_file.py", line 31, in <module>
model.save(filename)
File "C:Python27libsite-packagesopenpyxlworkbookworkbook.py", line 342, in save
save_workbook(self, filename)
File "C:Python27libsite-packagesopenpyxlwriterexcel.py", line 269, in save_workbook
writer.save(filename)
File "C:Python27libsite-packagesopenpyxlwriterexcel.py", line 251, in save
self.write_data()
File "C:Python27libsite-packagesopenpyxlwriterexcel.py", line 81, in write_data
self._write_worksheets()
File "C:Python27libsite-packagesopenpyxlwriterexcel.py", line 214, in _write_worksheets
self._write_comment(ws)
File "C:Python27libsite-packagesopenpyxlwriterexcel.py", line 184, in _write_comment
vml = fromstring(self.workbook.vba_archive.read(ws.legacy_drawing))
AttributeError: 'NoneType' object has no attribute 'read'
我尝试使用keep_vba=True
加载工作簿,但是如果无法正确保存文件。无法打开保存的文件。
我使用您的代码保存示例 .xlsx 文件。它保存了没有任何问题。
您内心有任何macro
.xlsx 文件吗?如果是,您可能需要使用
model = load_workbook(filename, keep_vba=True)
有关openpyxl
使用宏的详细信息,请参见此处。
此外,尝试保存到另一个文件名中,而不是试图覆盖原件以确保其正常工作。
fileout = "test2.xlsx"
model.save(fileout)
希望这会有所帮助。