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, pathlib.Path,

      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.

      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.

      - Otherwise if openpyxl is installed,

          then `openpyxl` will be used.

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

      Deprecated since version 3.1.0: For xlsx/xlsm files the default engine will change from `openpyxl` to `calamine` in a future version. Pass `engine` explicitly, or set the `io.excel.xlsx.reader` option (xlsm files are format-detected as xlsx), to keep the current behavior.

      Warning

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

    storage_options dict, optional

      Extra options that make sense for a particular storage connection, e.g. host, port, username, password, etc. For HTTP(S) URLs the key-value pairs are forwarded to `urllib.request.Request` as header options. For other URLs (e.g. starting with “s3://”, and “gcs://”) the key-value pairs are forwarded to `fsspec.open`. Please see `fsspec` and `urllib` for more details, and for more examples on storage options refer here.

    engine_kwargs dict, optional

      Arbitrary keyword arguments passed to excel engine.

  See also

  `DataFrame.to_excel`

    Write DataFrame to an Excel file.

  `DataFrame.to_csv`

    Write DataFrame to a comma-separated values (csv) file.

  `read_csv`

    Read a comma-separated values (csv) file into DataFrame.

  `read_fwf`

    Read a table of fixed-width formatted lines into DataFrame.

  Examples

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

  Attributes

  `book` | Gets the Excel workbook.
  `sheet_names` | Names of the sheets in the document.

  Methods

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