excel Python - Openpyxl -“用户警告:未知扩展”问题

kupeojn6  于 2023-01-10  发布在  Python
关注(0)|答案(4)|浏览(226)

我正在努力学习Python(第2天),并希望先用Excel书籍练习,因为这是我感到舒服/流利的地方。
马上 bat 我有一个错误,我不退出理解当运行下面的代码:

import openpyxl

wb = openpyxl.load_workbook("/Users/Scott/Desktop/Workbook1.xlsx")

print(wb.sheetnames)

这确实按要求打印了图纸名称,但后面跟有:

/Users/Scott/PycharmProjects/Excel/venv/lib/python3.7/site-packages/openpyxl/worksheet/_reader.py:293: UserWarning: Unknown extension is not supported and will be removed
  warn(msg)

我发现了其他问题,指向切片器/条件格式等,但这不适用于这里。这是一本书,我刚刚作出,只添加了3张表之前保存。它没有数据,没有格式,和扩展是有效的。我没有加载项安装在我的excel也。

您知道为什么会出现此错误吗?如何解决?

  • Python语言:3.7

开放性:2.6*

avwztpqn

avwztpqn1#

我也遇到过类似的问题。我开发了一个可以读写Excel文件的应用程序。它在我的Windows电脑上运行得很好,但后来我试着在朋友的Mac上运行它。它显示了同样的错误。我可以通过改变工作簿的配置来“修复”它,如下所示:

import openpyxl as op

wb = op.load_workbook(file, read_only=True, data_only=True)

但是,正如你所看到的,你只能阅读Excel文件与此配置。最后,我意识到,我的朋友没有安装Microsoft Office在他的计算机上。安装它真正解决了我的问题。

wgxvkvu9

wgxvkvu92#

这个问题是几年前的,但我现在遇到了openpyxl,需要修复,因为警告是混淆和误导我的最终用户。
来自openpyxl的警告来自stdlib警告库,它可以被抑制。

import warnings
warnings.simplefilter("ignore")

这就是“用锤子敲它”的方法。更多的警告抑制级别可以在这里找到:https://docs.python.org/3/library/warnings.html

ssm49v7z

ssm49v7z3#

这正是我刚才遇到的问题。
而对我的情况(不是对每个人)我发现你只需要关闭你的excel并重新运行代码,非常简单。
如果这个方法不起作用,你可以参考其他答案。
谢啦,谢啦

b4lqfgs4

b4lqfgs44#

Python-Openpyxl-"用户警告:未知扩展"问题
要理解这个错误,你需要知道XLSX文件里面有什么。最好的方法是将扩展名改为zip并打开它。在里面你会看到一个名为[Content_Types].xml的文件和其他内容的目录。如果你在Content_Types中检查XML,你会看到一个<Types ...>标签,其中包含如下所示的其他标签:

<Default Extension="png" ContentType="image/png"/>
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
<Default Extension="xml" ContentType="application/xml"/>

注意"扩展名"属性。这是警告所指的。在上面的例子中,我的文件包含Extension="png"-未知的扩展名。对我来说,指定read_only=True就足够了,错误消失了,例如:

wb = openpyxl.load_workbook(file, read_only=True)

我也可以通过将除图像外的所有内容复制到新工作簿并保存来修复这个问题。检查后,新工作簿中的xml不再包含png属性。
注意,使用pd.read_excel读入panda使用openpyxl,并生成相同的"未知扩展名"错误,但无法通过read_only参数传递。

import warnings
warnings.filterwarnings('ignore', category=UserWarning, module='openpyxl')

相关问题