为了账号安全,请及时绑定邮箱和手机立即绑定

Openpyxl 无法读取 xlsx 文件,但如果我保存该文件,它会打开

Openpyxl 无法读取 xlsx 文件,但如果我保存该文件,它会打开

慕田峪7331174 2023-09-19 17:31:28
所以,我尝试使用 openpyxl 用这一行打开一个 excel 文件wb_bs = openpyxl.load_workbook(filename=filepath)并得到这个错误:C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\styles\stylesheet.py:214: UserWarning: Workbook contains no default style, apply openpyxl's default  warn("Workbook contains no default style, apply openpyxl's default")Traceback (most recent call last):    wb_bs = openpyxl.load_workbook(filename=url_nova, data_only=True)  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook    reader.read()  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 280, in read    self.read_worksheets()  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 228, in read_worksheets    ws_parser.bind_all()  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 434, in bind_all    self.bind_cells()  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 337, in bind_cells    for idx, row in self.parser.parse():  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 149, in parse    obj = prop[1].from_tree(element)  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree    obj = desc.expected_type.from_tree(el)  File "C:\Users\T-Gamer\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree    return cls(**attrib)事情是:如果我创建 .xlsx 文件,它将打开如果我从这个特定来源(我需要的来源)下载文件并尝试立即打开它,则会生成错误。如果我在打开并保存 .xlsx 文件(无更改)后运行代码,它就会起作用。我想这与Excel版本冲突有关,但我已经尝试了所有方法,但似乎没有任何效果。openpyxl==3.0.5 python==3.8.5
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

这似乎是有关某些 Excel 文件的 Openpyxl 错误,报告如下:https: //foss.heptapod.net/openpyxl/openpyxl/-/issues/1071

不幸的是,似乎没有解决办法,只有您找到的解决方法:

在刚刚发布的 Excel 版本(版本 1803(内部版本 9126.2259 即点即用))中,Microsoft 修改了超链接在 Excel 文件中的存储方式。作为解决方法,您可以尝试在 Google Sheets 或 LibreOffice 中打开并重新保存该文件。我在数据验证方面遇到了类似的问题。


查看完整回答
反对 回复 2023-09-19
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

原因可能是 MS-Windows 的安全防护:每当您从外部源(互联网)下载 MS-Office 文件时,MS-Windows 都会在该文件中插入一个标志,标记该文件只能在受保护的视图中打开。该保护将保持不变,直到您启用编辑并在设置安全标志的情况下保存文件。


打开新下载的 MS-Office 文件时出现的警告文本:


PROTECTED VIEW

Be careful - files from the Internet can contain viruses.

Unless you need to edit, it's safer to stay in Protected View.


查看完整回答
反对 回复 2023-09-19
  • 2 回答
  • 0 关注
  • 304 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信