我完全卡住了。我是Python的新手,运行Pycharm。我尝试了各种涉及openpyxl的代码迭代,得出的结论是我做错了什么,我的生活不能让openpyxl正常运行。我已经安装了openpyxl软件包,下面的代码总是出错。我使用的是Windows 10,并在两台设备上复制了此错误。代码:
import openpyxl
from openpyxl import load_workbook
workbook = load_workbook('MYDIRECTORY/FILENAME.xlsx') # but I actually use proper path and name
sheet = workbook['PupilList'] # The name of my sheet
cell_value = sheet['A1'].value
print(cell_value)
非常基本,但即使这样也会抛出(就像我所有其他涉及this或pandas的代码一样)以下错误:
C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\Scripts\python.exe C:\Users\ExamUser\PycharmProjects\pythonProject1\main.py
Traceback (most recent call last):
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\main.py", line 5, in <module>
workbook = load_workbook('C:/Users/ExamUser/Desktop/StudentDataCompiler/PupilList.xlsx') # Replace 'your_file.xlsx' with the actual file path
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\reader\excel.py", line 346, in load_workbook
reader.read()
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\reader\excel.py", line 299, in read
apply_stylesheet(self.archive, self.wb)
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 198, in apply_stylesheet
stylesheet = Stylesheet.from_tree(node)
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 103, in from_tree
return super(Stylesheet, cls).from_tree(node)
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree
obj = desc.expected_type.from_tree(el)
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree
obj = desc.expected_type.from_tree(el)
File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
return cls(**attrib)
TypeError: __init__() got an unexpected keyword argument 'xxid'
Process finished with exit code 1
有谁能告诉我怎么解决这个问题吗?我非常感谢你的任何帮助。
我尝试过不同的python安装(最新的3.9,3.8:结果相同);我试过完全卸载python和pycharm,然后重新安装它们。不高兴。
1条答案
按热度按时间pb3skfrl1#
你文件上的OOXML格式可能不正确-这就是openpyxl.load_workbook()失败的原因。
这里有一些关于它的更多信息:https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1931
修复OOXML的一种手动方法是首先在excel中打开文件,然后保存它。保存它应该可以纠正任何OOXML问题。
然后你可以修改你的脚本,它可能工作得很好。
注意这是openpyxl的预期行为-它拒绝任何不符合它要求的文件/数据类型的文件。
将来,您可以通过脚本防止此类内容(如果您有100个Excel文件存在此问题)的一种方法可能是转换为CSV,然后转换回xlsx。