使用 openpyxl 打开 .xlsm 文件时出现问题
Posted
技术标签:
【中文标题】使用 openpyxl 打开 .xlsm 文件时出现问题【英文标题】:Issue while opening .xlsm file using openpyxl 【发布时间】:2021-12-08 05:32:29 【问题描述】:我目前正在使用 openpyxl 将新工作表添加到 .xlsm 文件中,使用 (read_only=False)
例如。
wb = openpyxl.load_workbook("Input_file.xlsm", read_only=False, keep_vba=True)
sheet = wb.create_sheet('Source_Data')
final_row = dataframe_to_rows(final_df)
# code to add final row to sheet Source_Data
wb.save("Input_file.xlsm")
wb.close()
Below is the error message
~\AppData\Local\Programs\Python\Python39\lib\zipfile.py in getinfo(self, name)
1427 info = self.NameToInfo.get(name)
1428 if info is None:
-> 1429 raise KeyError(
1430 'There is no item named %r in the archive' % name)
1431
KeyError: "There is no item named 'xl/drawings/NULL' in the archive"
【问题讨论】:
我认为您应该写信给它……optimised mode 上的文档应该有更多详细信息,因为您使用的是 read_only = True 源文件损坏。 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:我遇到了完全相同的问题。我设法轻松解决了它(我不明白为什么,但它有效)。 显然有一些图像粘贴在一些隐藏的工作表中。
您需要找到并删除它们。 (也许使它们可见也可以解决问题-我没有检查) 有两种方法。选择工作簿中的每个工作表。那么:
选项1: 按 F5 -> 特殊 -> 对象 这将突出显示工作表上的所有隐藏图像
选项2: 转到“主页”选项卡->按“查找和选择”->按“选择窗格” 您可以查看所有隐藏的图像 - 并删除它们
【讨论】:
以上是关于使用 openpyxl 打开 .xlsm 文件时出现问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥打开 .xlsm 而不是 .xls 时出现 python xlrd 错误