我需要定期更新启用宏的excel工作簿。Openpyxl能够成功地读取、更新和保存文件,而不会出错。
但是,当试图在Excel中打开新保存的文件时,它会引发错误:“我们在XX.xlsm中发现了一些内容的问题。您想让我们尽可能地恢复吗?.单击是的。”
单击Yes后,开始修复文件,并移除一些关键部分,主要是/xl/ starts文件夹;
删除了部分:/xl/drawings/vmlDrawin10.vml部件。(绘图形状)删除功能:命名范围从/xl/workbook.xml部件(工作簿)删除记录:注释从/xl/ Comments /评论5.xml部件(注释)修复记录:从/xl/图纸/Draing1.xml部件(绘图形状)修复记录:绘图/xl/图纸/Draing2.xml部件(绘图形状)修复记录:从/xl/绘图/绘图/绘制3.xml部件(绘图形状)修复记录:绘图/xl/图纸/绘图4.xml部件(绘图形状)修复记录:从/xl/绘图/绘图5绘制.xml部件(绘图形状)修复记录:从/xl/素描/绘制6.xml部件(绘图形状)绘制修复记录:从/xl/drawings/draing7.xml部件(绘图形状)绘制修复记录:从/xl/素描/绘制8.xml部件(绘图形状)绘制修复记录:从/xl/素描/绘制9..xml部件(绘图形状)修复记录:从/xl/素描/绘制10.xml部件(绘图形状)记录:绘图来自/xl/修复记录: DRepaired记录:d
因此,除了python脚本更新的数据之外,其余的数据都被破坏了,我得到了#NAME?还有#价值!其他工作簿中的任何地方都有错误。
下面是代码的片段:
path = 'XXX.xlsm'
from openpyxl import load_workbook
wb = load_workbook(path,keep_vba=True)
ws = wb['Input']
XXX
XXX
ws['I6'].value = date.today()
wb.save('XXX.xlsm')
wb.close()
我不知道该怎么做。请帮我修复这个错误,或者建议一个替代方案,因为我真的需要这个来工作。谢谢!
发布于 2020-10-02 14:39:28
您可以先保存,然后再加载,最后保存。
from openpyxl import Workbook, load_workbook
wb = Workbook()
wb.save('your_macro_wb.xlsm')
wb = load_workbook('your_macro_wb.xlsm', keep_vba=True)
wb.save('your_macro_wb.xlsm')
发布于 2022-05-23 19:41:40
打开excel文件时,我也有同样的问题。其中一个图形不见了。在我将openpyxl版本更新为3.0.10 (原始2.6)之后,问题就解决了。
https://stackoverflow.com/questions/64154828
复制相似问题