Demons_皮 2023-06-28 16:31 采纳率: 50%
浏览 249
已结题

openpyxl加载excel文件报错got an unexpected keyword

问题现象及背景
openpyxl加载excel文件时,报错提示TypeError: init() got an unexpected keyword argument 'state'

代码片段

workbook = openpyxl.load_workbook(filename=self.calibration['case_path'], data_only=True)  # 获取用例excel表格对象
worksheet = workbook.worksheets[self.calibration['start_sheet']]

运行结果

File "D:\PythonWorkSpace\Auto_test_wuhan\function_test\Compare_Loop.py", line 129, in run
    workbook = openpyxl.load_workbook(filename=self.calibration['case_path'], data_only=True)  # 获取用例excel表格对象
  File "D:\Python3.8.6\lib\site-packages\openpyxl\reader\excel.py", line 346, in load_workbook
    reader.read()
  File "D:\Python3.8.6\lib\site-packages\openpyxl\reader\excel.py", line 301, in read
    self.read_worksheets()
  File "D:\Python3.8.6\lib\site-packages\openpyxl\reader\excel.py", line 237, in read_worksheets
    ws_parser.bind_all()
  File "D:\Python3.8.6\lib\site-packages\openpyxl\worksheet\_reader.py", line 465, in bind_all
    self.bind_cells()
  File "D:\Python3.8.6\lib\site-packages\openpyxl\worksheet\_reader.py", line 368, in bind_cells
    for idx, row in self.parser.parse():
  File "D:\Python3.8.6\lib\site-packages\openpyxl\worksheet\_reader.py", line 163, in parse
    obj = prop[1].from_tree(element)
  File "D:\Python3.8.6\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
    return cls(**attrib)
TypeError: __init__() got an unexpected keyword argument 'state'

尝试过的方法
1.尝试删掉data_only=True
2.尝试升级openpyxl

代码片段截图

img

  • 写回答

2条回答 默认 最新

  • Demons_皮 2023-06-30 11:14
    关注

    修复excel文件损坏后问题解决。因为我的excel文件是用腾讯在线文档导出来的,双击打开时会弹出文件损坏,是否修复的提示,所以openpyxl在加载excel文件时才会报错得到意外参数'state',修复excel文件损坏问题后解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月8日
  • 已采纳回答 6月30日
  • 创建了问题 6月28日