我在尝试打开带有 xlsx 扩展名的文件时收到以下错误。
我尝试使用带有引擎的 pandas 作为 openpyxl、openpyxl 库,但错误仍然相同。 代码-
import pandas as pd
filepath=r'C:\Users\smriti.rastogi\eclipseworkspace\demoproject\testfile1.xlsx'
readFile = pd.read_excel(filepath, sheet_name='Sheet1')
readFile.head()
如有任何帮助,我们将不胜感激。
File ".\test.py", line 25, in <module>
readFile = pd.read_excel(filepath, sheet_name='Sheet1')
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\util\_decorators.py", line 311, in wrapper
return func(*args, **kwargs)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\io\excel\_base.py", line 364, in read_excel
io = ExcelFile(io, storage_options=storage_options, engine=engine)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\io\excel\_base.py", line 1233, in __init__
self._reader = self._engines[engine](self._io, storage_options=storage_options)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\io\excel\_openpyxl.py", line 522, in __init__
super().__init__(filepath_or_buffer, storage_options=storage_options)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\io\excel\_base.py", line 420, in __init__
self.book = self.load_workbook(self.handles.handle)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\io\excel\_openpyxl.py", line 533, in load_workbook
return load_workbook(
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 317, in load_workbook
reader.read()
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 281, in read
apply_stylesheet(self.archive, self.wb)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\styles\stylesheet.py", line 198, in apply_stylesheet
stylesheet = Stylesheet.from_tree(node)
File "C:\Users\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\styles\stylesheet.py", line 103, in from_tree
return super(Stylesheet, cls).from_tree(node)
File "C:\Users\smriti.rastogi\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\smriti.rastogi\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\smriti.rastogi\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
return cls(**attrib)
TypeError: __init__() got an unexpected keyword argument 'xfid'
检查您的第一个单元格 (a,1) 是否为空。我注意到它需要有一个值来避免这个问题。
原因是pandas(实际上是openpyxl)期望第一个单元格非空,因此它可以用作标题。
然后,为了避免这种情况,最好的解决方案是正确设置参数,以便解析器开始读取正确的单元格(https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html )
例如,假设我们有一个 xlsx 文件,其中第一行为空,然后它在某些单元格上具有稀疏元数据(例如标题和其他内容),并且实际数据从单元格 32 开始。此外,所有数据都有一个边距与 Word 文件中一样,A 列为空,并以 P 列结尾。读取文件的正确方法是:
df = pd.read_excel(xlsx_path, skiprows=31, usecols="B:P")
您文档中的一种样式可能已损坏。尝试将数据以纯文本形式复制/粘贴到另一张空白纸上。使用新文档重试。
这有效,什么是 xfid ,尚未找到任何与之相关的相关链接。如果您可以分享一些资源,将会很有帮助。
不幸的是,没有关于这个问题的资源。你必须根据回溯来阅读源代码才能找到错误。