pandas openpyxl在Windows 10上,Pycharm,始终给出“TypeError:__init__()获得了意外的关键字参数'xxid'

lsmepo6l  于 2023-10-14  发布在  Windows
关注(0)|答案(1)|浏览(212)

我完全卡住了。我是Python的新手,运行Pycharm。我尝试了各种涉及openpyxl的代码迭代,得出的结论是我做错了什么,我的生活不能让openpyxl正常运行。我已经安装了openpyxl软件包,下面的代码总是出错。我使用的是Windows 10,并在两台设备上复制了此错误。代码:

  1. import openpyxl
  2. from openpyxl import load_workbook
  3. workbook = load_workbook('MYDIRECTORY/FILENAME.xlsx') # but I actually use proper path and name
  4. sheet = workbook['PupilList'] # The name of my sheet
  5. cell_value = sheet['A1'].value
  6. print(cell_value)

非常基本,但即使这样也会抛出(就像我所有其他涉及this或pandas的代码一样)以下错误:

  1. C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\Scripts\python.exe C:\Users\ExamUser\PycharmProjects\pythonProject1\main.py
  2. Traceback (most recent call last):
  3. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\main.py", line 5, in <module>
  4. workbook = load_workbook('C:/Users/ExamUser/Desktop/StudentDataCompiler/PupilList.xlsx') # Replace 'your_file.xlsx' with the actual file path
  5. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\reader\excel.py", line 346, in load_workbook
  6. reader.read()
  7. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\reader\excel.py", line 299, in read
  8. apply_stylesheet(self.archive, self.wb)
  9. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 198, in apply_stylesheet
  10. stylesheet = Stylesheet.from_tree(node)
  11. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 103, in from_tree
  12. return super(Stylesheet, cls).from_tree(node)
  13. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree
  14. obj = desc.expected_type.from_tree(el)
  15. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 87, in from_tree
  16. obj = desc.expected_type.from_tree(el)
  17. File "C:\Users\ExamUser\PycharmProjects\pythonProject1\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
  18. return cls(**attrib)
  19. TypeError: __init__() got an unexpected keyword argument 'xxid'
  20. Process finished with exit code 1

有谁能告诉我怎么解决这个问题吗?我非常感谢你的任何帮助。
我尝试过不同的python安装(最新的3.9,3.8:结果相同);我试过完全卸载python和pycharm,然后重新安装它们。不高兴。

pb3skfrl

pb3skfrl1#

你文件上的OOXML格式可能不正确-这就是openpyxl.load_workbook()失败的原因。
这里有一些关于它的更多信息:https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1931
修复OOXML的一种手动方法是首先在excel中打开文件,然后保存它。保存它应该可以纠正任何OOXML问题。
然后你可以修改你的脚本,它可能工作得很好。
注意这是openpyxl的预期行为-它拒绝任何不符合它要求的文件/数据类型的文件。
将来,您可以通过脚本防止此类内容(如果您有100个Excel文件存在此问题)的一种方法可能是转换为CSV,然后转换回xlsx。

相关问题