Pandas внезапно не может открыть файл Excel (не удается найти книгу в составном документе OLE2 - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть скрипт, который читает файл xlsx excel, который работал нормально до недели go. Сообщение об ошибке:

xlrd.biffh.XLRDError: Не удается найти книгу в составном документе OLE2

После отладки сценария я обнаружил весь стек :

C:\MyFolder\MyScript.py", line 42, in PandasReadExcel 
   ef=pd.read_excel(excfile,sheetname,header,skiprows) 
File "C:\Python\Python36\lib\site-packages\pandas\io\excel.py", line 191, in read_excel 
   io = ExcelFile(io, engine=engine) 
File "C:\Python\Python36\lib\site-packages\pandas\io\excel.py", line 249, in __init__ 
   self.book = xlrd.open_workbook(io) 
File "C:\Python\Python36\lib\site-packages\xlrd\__init__.py", line 441, in open_workbook 
   ragged_rows=ragged_rows, File "C:\Python\Python36\lib\site-packages\xlrd\book.py", line 87, in open_workbook_xls 
   ragged_rows=ragged_rows, 
File "C:\Python\Python36\lib\site-packages\xlrd\book.py", line 595, in biff2_8_load 
   raise XLRDError("Can't find workbook in OLE2 compound document") 
xlrd.biffh.XLRDError: Can't find workbook in OLE2 compound document

Изучив подобные случаи здесь и в GitHub, я обнаружил, что эта ошибка обычно возникает с файлами xlsm или файлами, защищенными паролем. Но соответствующая книга Excel не защищена паролем и представляет собой файл xlsx. К моему «несчастью» я не знаю человека, который изменяет файл, он регулярно обновляется командой, которая проводит лабораторный анализ, поэтому у меня нет никаких идей о том, что они изменили в файле. Все, что я знаю, это то, что я могу открыть / отредактировать этот файл без проблем.

Некоторые потоки предлагают обновить pandas или версию xlrd (я использую pandas 0.19.2), чего я хочу избежать , поскольку сценарий выполняется на удаленном сервере, и обновление версии может повлиять на правильную работу других сценариев в зависимости от этой процедуры.

Благодарю всех, кто знает, как решить эту проблему.

...