skillfed

python-calamine

Python binding for Rust's library for reading excel and odf file - calamine

python-calamine v0.8.2 6.3M downloads/30d#1,940 on PyPI492
Permissive license MIT Active released

What it is and what it does

python-calamine is a Python wrapper around the Rust calamine library that reads Excel (.xlsx) and ODF spreadsheet files. It provides a simple API to load workbooks, list sheet names, and extract sheet data as Python lists or use it with pandas. The package is built with PyO3 and maturin, delivered as precompiled wheels for most platforms.

The library skips empty rows and columns at the start of data by default but allows you to disable this behavior. It integrates with pandas 2.2 and above, which have built-in support for it. With zero runtime dependencies and active maintenance, it's designed as a fast, lightweight alternative to pure-Python spreadsheet readers.

Use it for:

  • Extract data from Excel files into Python for data analysis or processing pipelines
  • Batch read multiple sheets from a workbook and convert to pandas DataFrames
  • Parse ODF spreadsheets in automated workflows without external dependencies
  • Load spreadsheet data in applications where performance matters (compiled Rust backend)
  • Integrate with pandas workflows using pandas' native calamine support

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Reads Excel and ODF spreadsheet files via a Python binding to the Rust calamine library, returning sheet data as Python lists or compatible with pandas.

Yes. The package is actively maintained, has no security vulnerabilities, carries a permissive MIT license, and offers a fast compiled alternative to pure-Python Excel readers. Install friction is manageable with prebuilt wheels for common platforms. Suitable for any project needing to read Excel or ODF files in Python 3.10+.

Install

python-calamine on PyPI

pip

pip install python-calamine

uv

uv add python-calamine

poetry

poetry add python-calamine

Installing python-calamine

Before you install

Medium install friction due to compiled wheels; prebuilt binaries available for common platforms (macOS, Linux, Windows, multiple architectures including ARM). Active maintenance with recent releases; no runtime dependencies to manage.

License in practice

MIT license permits commercial and private use with minimal restrictions; suitable for most projects.

Quickstart

pip install python-calamine

from python_calamine import CalamineWorkbook

workbook = CalamineWorkbook.from_path("file.xlsx")
sheet = workbook.get_sheet_by_name("Sheet1")
data = sheet.to_python()

Requires Python 3.10 or later; Rust toolchain needed only for development/building from source.

Verify before relying

  • Performance characteristics compared to other Excel readers (openpyxl, xlrd) on large files
  • Support for Excel formulas, formatting, or only cell values
  • Memory efficiency for very large spreadsheets
  • ODF format coverage and limitations

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 32 days since the last release
Last repo commit
First released
Downloads 6,279,339/month — #1,940 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: python_calamine-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl; python_calamine-0.8.2-cp310-cp310-macosx_11_0_arm64.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; python_calamine-0.8.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; python_calamine-0.8.2-cp310-cp310-musllinux_1_1_aarch64.whl; python_calamine-0.8.2-cp310-cp310-musllinux_1_1_armv7l.whl; python_calamine-0.8.2-cp310-cp310-musllinux_1_1_x86_64.whl; python_calamine-0.8.2-cp310-cp310-win32.whl; python_calamine-0.8.2-cp310-cp310-win_amd64.whl; python_calamine-0.8.2-cp311-cp311-macosx_10_12_x86_64.whl; python_calamine-0.8.2-cp311-cp311-macosx_11_0_arm64.whl; python_calamine-0.8.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; python_calamine-0.8.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; python_calamine-0.8.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; python_calamine-0.8.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; python_calamine-0.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Development Status :: 4 - BetaProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Rust

Tags

read excel files pythonxlsx odf parserspreadsheet data extractionfast excel readercalamine python bindingexcel to python listodf file reader
spreadsheet-iorust-bindingdata-extraction

More Text Processing packages