Skip to main content
`Ctrl`+`K`

# pandas.ExcelFile

class pandas.ExcelFile(path_or_buffer, engine=None, storage_options=None, engine_kwargs=None)

  Class for parsing tabular Excel sheets into DataFrame objects.

  See read_excel for more documentation.

  Parameters:
    path_or_buffer str, bytes, path object (pathlib.Path or py._path.local.LocalPath),

      A file-like object, xlrd workbook or openpyxl workbook. If a string or path object, expected to be a path to a .xls, .xlsx, .xlsb, .xlsm, .odf, .ods, or .odt file.

    engine str, default None

      If io is not a buffer or path, this must be set to identify io. Supported engines: `xlrd`, `openpyxl`, `odf`, `pyxlsb`, `calamine` Engine compatibility :

      - `xlrd` supports old-style Excel files (.xls).

      - `openpyxl` supports newer Excel file formats.

      - `odf` supports OpenDocument file formats (.odf, .ods, .odt).

      - `pyxlsb` supports Binary Excel files.

      - `calamine` supports Excel (.xls, .xlsx, .xlsm, .xlsb) and OpenDocument (.ods) file formats.

      Changed in version 1.2.0: The engine xlrd now only supports old-style `.xls` files. When `engine=None`, the following logic will be used to determine the engine:

      - If `path_or_buffer` is an OpenDocument format (.odf, .ods, .odt), then odf will be used.

      - Otherwise if `path_or_buffer` is an xls format, `xlrd` will be used.

      - Otherwise if `path_or_buffer` is in xlsb format, pyxlsb will be used.

      Added in version 1.3.0.

      - Otherwise if openpyxl is installed, then `openpyxl` will be used.

      - Otherwise if `xlrd >= 2.0` is installed, a `ValueError` will be raised.

      Warning

      Please do not report issues when using `xlrd` to read `.xlsx` files. This is not supported, switch to using `openpyxl` instead.

    engine_kwargs dict, optional

      Arbitrary keyword arguments passed to excel engine.

  Examples

      >>> file = pd.ExcelFile('myfile.xlsx')
      >>> with pd.ExcelFile("myfile.xls") as xls:
      ...     df1 = pd.read_excel(xls, "Sheet1")

  Attributes

  `book` |
  `sheet_names` |

  Methods

  `close`() | close io if necessary
  `parse`([sheet_name, header, names, ...]) | Parse specified sheet(s) into a DataFrame.