Skip to content

Feature: Support XLSM, XLSB & Replace excel engine with faster calamine#259

Closed
yeungadrian wants to merge 3 commits into
microsoft:mainfrom
yeungadrian:feature/excel-calamine
Closed

Feature: Support XLSM, XLSB & Replace excel engine with faster calamine#259
yeungadrian wants to merge 3 commits into
microsoft:mainfrom
yeungadrian:feature/excel-calamine

Conversation

@yeungadrian

@yeungadrian yeungadrian commented Jan 3, 2025

Copy link
Copy Markdown
Contributor

Background

Python-Calamine is a rust based excel reader(https://pypi.org/project/python-calamine/) which supports .xls, .xlsx, .xlsm, .xlsb (also .ods)
Calamine should provide a "free" bump in performance.
Using calamine & tabulate over pandas should also result in fewer dependencies
Should allow a cleaner solution to #52 around filtering empty rows & columns with a small additional change

Changes

  • Remove pandas + openpyxl & xlrd -> calamine & tabulate instead
  • Support xlsm & xlsb

Open questions

  • Argument against could be that python-calamine is not as well known
  • Could just use tabulate, instead of additional html to str conversion
  • Future pr could add argument of skip_empty_area to cli / argument

@yeungadrian yeungadrian changed the title combine xlsx and xls to excel, replace openpxyl/xlrd with calamine Feature: Support XLSM, XLSB & Replace engine with faster calamine Jan 3, 2025
@yeungadrian yeungadrian changed the title Feature: Support XLSM, XLSB & Replace engine with faster calamine Feature: Support XLSM, XLSB & Replace excel engine with faster calamine Jan 4, 2025
@hewliyang

Copy link
Copy Markdown

As of Jan 19, calamine is now supported as an engine in pandas - I don't see any reason not to just have one processor for .xls, .xlsx, .xlsm, .xlsb , .ods anymore

@afourney doesn't seem to be in favor of removing sparsity by default, so would have to give some flags as in #52.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants