我正在尝试使用python openpyxl读取附加的xlsx(Click here to download )文件。但是,无法加载工作簿。这是我尝试在python中打开xlsx文件 -
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename = "test.xlsx")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\openpyxl\reader\excel.py", line 136, in load_workbook
_load_workbook(wb, archive, filename, use_iterators, keep_vba)
File "C:\Python27\lib\site-packages\openpyxl\reader\excel.py", line 198, in _load_workbook
keep_vba=keep_vba)
File "C:\Python27\lib\site-packages\openpyxl\reader\worksheet.py", line 332, in read_worksheet
fast_parse(ws, xml_source, string_table, style_table, color_index)
File "C:\Python27\lib\site-packages\openpyxl\reader\worksheet.py", line 320, in fast_parse
parser.parse()
File "C:\Python27\lib\site-packages\openpyxl\reader\worksheet.py", line 137, in parse
dispatcher[tag_name](element)
File "C:\Python27\lib\site-packages\openpyxl\reader\worksheet.py", line 176, in parse_merge
self.ws.merge_cells(mergeCell.get('ref'))
File "C:\Python27\lib\site-packages\openpyxl\worksheet.py", line 815, in merge_cells
raise InsufficientCoordinatesException(msg)
openpyxl.shared.exc.InsufficientCoordinatesException: Range must be a cell range (e.g. A1:E1)
答案 0 :(得分:3)
您的.xlsx
文件似乎已损坏或永久损坏。原因可能很多。其中之一可能是您可能已将文件的扩展名重命名为.xlsx
,这会使文件无效。要确认此beahviour,请尝试在Microsoft Excel中打开此文件。
我尝试通过openpyxl
,xlrd
和pandas
阅读该文件,但这些文件都没有效果。
>>> import xlrd
>>> xlrd.open_workbook('test.xlsx')
XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<html> <'
>>> from openpyxl import load_workbook
>>> workbook = load_workbook(filename = "test.xlsx")
InvalidFileException: File is not a zip file
>>> import pandas
>>> pandas.ExcelFile('test.xlsx')
InvalidFileException: File is not a zip file
答案 1 :(得分:1)
OK Guys ..我已经向openpyxl开发人员报告了这个错误,他们已经提供了一个快速解决方案。 Here是完整的主题。
答案 2 :(得分:1)
我遇到了这个问题,尝试打开以* .xlsx结尾的目录中的每个文件。 我后来发现导致错误的文件被命名为〜$ filename.xlsx。我猜微软表示当前打开一个文件是通过创建一个同名的文件,前面加上〜$。一旦我关闭文件,一切都按预期工作。
答案 3 :(得分:0)
我喜欢openpyxl
并将其用于创建xlsx
文档。它可能是错误或缺少与特定文档中发生的excel功能的兼容性。我会将其报告给openpyxl
社区
答案 4 :(得分:0)
问题在于,一些合并的单元实际上是与自己合并的。 openpyxl期望合并的单元格引用始终是一系列单元格。 2.0分支中添加了忽略无意义合并的问题的修复程序。
答案 5 :(得分:-1)
我从未尝试openpyxl
,但我使用xlrd
来读取excel文件(.xls和.xlsx)。它的工作很棒。