159
159
of dtype conversion.
160
160
engine : str, default None
161
161
If io is not a buffer or path, this must be set to identify io.
162
- Supported engines: "xlrd", "openpyxl", "odf", "pyxlsb".
162
+ Supported engines: "xlrd", "openpyxl", "odf", "pyxlsb", "calamine" .
163
163
Engine compatibility :
164
164
165
165
- "xlrd" supports old-style Excel files (.xls).
166
166
- "openpyxl" supports newer Excel file formats.
167
167
- "odf" supports OpenDocument file formats (.odf, .ods, .odt).
168
168
- "pyxlsb" supports Binary Excel files.
169
+ - "calamine" supports Excel (.xls, .xlsx, .xlsm, .xlsb)
170
+ and OpenDocument (.ods) file formats.
169
171
170
172
.. versionchanged:: 1.2.0
171
173
The engine `xlrd <https://xlrd.readthedocs.io/en/latest/>`_
@@ -394,7 +396,7 @@ def read_excel(
394
396
| Callable [[str ], bool ]
395
397
| None = ...,
396
398
dtype : DtypeArg | None = ...,
397
- engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" ] | None = ...,
399
+ engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" , "calamine" ] | None = ...,
398
400
converters : dict [str , Callable ] | dict [int , Callable ] | None = ...,
399
401
true_values : Iterable [Hashable ] | None = ...,
400
402
false_values : Iterable [Hashable ] | None = ...,
@@ -433,7 +435,7 @@ def read_excel(
433
435
| Callable [[str ], bool ]
434
436
| None = ...,
435
437
dtype : DtypeArg | None = ...,
436
- engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" ] | None = ...,
438
+ engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" , "calamine" ] | None = ...,
437
439
converters : dict [str , Callable ] | dict [int , Callable ] | None = ...,
438
440
true_values : Iterable [Hashable ] | None = ...,
439
441
false_values : Iterable [Hashable ] | None = ...,
@@ -472,7 +474,7 @@ def read_excel(
472
474
| Callable [[str ], bool ]
473
475
| None = None ,
474
476
dtype : DtypeArg | None = None ,
475
- engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" ] | None = None ,
477
+ engine : Literal ["xlrd" , "openpyxl" , "odf" , "pyxlsb" , "calamine" ] | None = None ,
476
478
converters : dict [str , Callable ] | dict [int , Callable ] | None = None ,
477
479
true_values : Iterable [Hashable ] | None = None ,
478
480
false_values : Iterable [Hashable ] | None = None ,
@@ -1456,13 +1458,15 @@ class ExcelFile:
1456
1458
.xls, .xlsx, .xlsb, .xlsm, .odf, .ods, or .odt file.
1457
1459
engine : str, default None
1458
1460
If io is not a buffer or path, this must be set to identify io.
1459
- Supported engines: ``xlrd``, ``openpyxl``, ``odf``, ``pyxlsb``
1461
+ Supported engines: ``xlrd``, ``openpyxl``, ``odf``, ``pyxlsb``, ``calamine``
1460
1462
Engine compatibility :
1461
1463
1462
1464
- ``xlrd`` supports old-style Excel files (.xls).
1463
1465
- ``openpyxl`` supports newer Excel file formats.
1464
1466
- ``odf`` supports OpenDocument file formats (.odf, .ods, .odt).
1465
1467
- ``pyxlsb`` supports Binary Excel files.
1468
+ - ``calamine`` supports Excel (.xls, .xlsx, .xlsm, .xlsb)
1469
+ and OpenDocument (.ods) file formats.
1466
1470
1467
1471
.. versionchanged:: 1.2.0
1468
1472
@@ -1498,6 +1502,7 @@ class ExcelFile:
1498
1502
... df1 = pd.read_excel(xls, "Sheet1") # doctest: +SKIP
1499
1503
"""
1500
1504
1505
+ from pandas .io .excel ._calamine import CalamineReader
1501
1506
from pandas .io .excel ._odfreader import ODFReader
1502
1507
from pandas .io .excel ._openpyxl import OpenpyxlReader
1503
1508
from pandas .io .excel ._pyxlsb import PyxlsbReader
@@ -1508,6 +1513,7 @@ class ExcelFile:
1508
1513
"openpyxl" : OpenpyxlReader ,
1509
1514
"odf" : ODFReader ,
1510
1515
"pyxlsb" : PyxlsbReader ,
1516
+ "calamine" : CalamineReader ,
1511
1517
}
1512
1518
1513
1519
def __init__ (
0 commit comments