1
resposta

Erro para abertura de arquivo excel no python

Preciso de uma ajuda para fazer essa execução: bd_estoque = pd.read_excel(r'C:\Users\mariasouza\Desktop\DRP\SalesAndOperationsUNP\bases\BD_ZSD036.xlsb')

está dando esse erro:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-3-4e2aacb1601b> in <module>
----> 1 bd_estoque = pd.read_excel(r'C:\Users\mariasouza\Desktop\DRP\SalesAndOperationsUNP\bases\BD_ZSD036.xlsb')

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    297                 )
    298                 warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
--> 299             return func(*args, **kwargs)
    300 
    301         return wrapper

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\io\excel\_base.py in read_excel(io, sheet_name, header, names, index_col, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, parse_dates, date_parser, thousands, comment, skipfooter, convert_float, mangle_dupe_cols, storage_options)
    334     if not isinstance(io, ExcelFile):
    335         should_close = True
--> 336         io = ExcelFile(io, storage_options=storage_options, engine=engine)
    337     elif engine and engine != io.engine:
    338         raise ValueError(

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\io\excel\_base.py in __init__(self, path_or_buffer, engine, storage_options)
   1129         self.storage_options = storage_options
   1130 
-> 1131         self._reader = self._engines[engine](self._io, storage_options=storage_options)
   1132 
   1133     def __fspath__(self):

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\io\excel\_openpyxl.py in __init__(self, filepath_or_buffer, storage_options)
    473         """
    474         import_optional_dependency("openpyxl")
--> 475         super().__init__(filepath_or_buffer, storage_options=storage_options)
    476 
    477     @property

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\io\excel\_base.py in __init__(self, filepath_or_buffer, storage_options)
    389             # N.B. xlrd.Book has a read attribute too
    390             self.handles.handle.seek(0)
--> 391             self.book = self.load_workbook(self.handles.handle)
    392         elif isinstance(self.handles.handle, bytes):
    393             self.book = self.load_workbook(BytesIO(self.handles.handle))

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\pandas\io\excel\_openpyxl.py in load_workbook(self, filepath_or_buffer)
    484         from openpyxl import load_workbook
    485 
--> 486         return load_workbook(
    487             filepath_or_buffer, read_only=True, data_only=True, keep_links=False
    488         )

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\openpyxl\reader\excel.py in load_workbook(filename, read_only, keep_vba, data_only, keep_links)
    315     reader = ExcelReader(filename, read_only, keep_vba,
    316                         data_only, keep_links)
--> 317     reader.read()
    318     return reader.wb

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\openpyxl\reader\excel.py in read(self)
    276         self.read_manifest()
    277         self.read_strings()
--> 278         self.read_workbook()
    279         self.read_properties()
    280         self.read_theme()

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\openpyxl\reader\excel.py in read_workbook(self)
    146 
    147     def read_workbook(self):
--> 148         wb_part = _find_workbook_part(self.package)
    149         self.parser = WorkbookParser(self.archive, wb_part.PartName[1:], keep_links=self.keep_links)
    150         self.parser.parse()

c:\users\mariasouza\appdata\local\programs\python\python38\lib\site-packages\openpyxl\reader\excel.py in _find_workbook_part(package)
    111         return Override("/" + ARC_WORKBOOK, workbook_type.pop())
    112 
--> 113     raise IOError("File contains no valid workbook part")
    114 
    115 

OSError: File contains no valid workbook part

tenho já tudo isso instalado:

et-xmlfile==1.1.0
lxml==4.6.3
numpy==1.20.3
openpyxl==3.0.7
pandas==1.2.4
python-dateutil==2.8.1
pytz==2021.1
pyxlsb==1.0.8
six==1.16.0
xlrd==2.0.1

Conseguem me ajudar por favor.

1 resposta

Olá Maria, tudo bem? Espero que sim!

O seu arquivo é um arquivo no formato XLSB, como pode ser visto no nome 'BD_ZSD036.xlsb'. Esse tipo de arquivo é do tipo binário Excel Binary Workbook. Sugiro abrir o arquivo e salvar no formato XLSX e tentar abrir nesse formato com a função read_excel.

Bons estudos!