feat(python): add "pyxlsb" engine support to read_excel
(for excel binary workbook files)
#11248
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #11181 (and also closes #11184 by adding a
.. versionadded
tag to the docs).Adds support for the
pyxlsb
engine so that we can also read Excel Binary Workbook files (those with an ".xlsb" extension, which are not compatible with any of the existing ".xlsx" engines). Note that this engine does not currently autodetect datetime/date columns (it reads them in as Excel's native offset-Julian float), and therefore requires the use ofschema_overrides
to load them correctly (I have added a note in the docstring about this).Also: improves Date parsing for OpenOffice files via
read_ods
).Also: slightly updates
show_versions()
docs/example with the latest libs.Support for spreadsheet data is improving nicely; with this update
read_excel
can now read all of the major Excel formats (".xlsx", ".xlsm", "xlsb"), and we can handle the OpenOffice ".ods" format viaread_ods
.Example
Reading ".xlsb" files:
Before
After
FYI: @SaelKimberly has been experimenting with writing a potentially superior ".xlsb" reading engine; if & when this is ready (and well tested and available from
pypi
;) we can look at including that as the default.xlsb
engine instead - looking forward to it 👍