python-calamine 0.6.2


pip install python-calamine

  Latest version

Released: Feb 18, 2026

Project Links

Meta
Author: Dmitriy
Requires Python: >=3.10

Classifiers

Development Status
  • 4 - Beta

Programming Language
  • Rust
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

python-calamine

PyPI - Version Conda Version Python Version from PEP 621 TOML

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

Is used

Installation

Pypi:

pip install python-calamine

Conda:

conda install -c conda-forge python-calamine

Example

from python_calamine import CalamineWorkbook

workbook = CalamineWorkbook.from_path("file.xlsx")
workbook.sheet_names
# ["Sheet1", "Sheet2"]

workbook.get_sheet_by_name("Sheet1").to_python()
# [
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ]

By default, calamine skips empty rows/cols before data. For suppress this behaviour, set skip_empty_area to False.

from python_calamine import CalamineWorkbook

workbook = CalamineWorkbook.from_path("file.xlsx").get_sheet_by_name("Sheet1").to_python(skip_empty_area=False)
# [
# [",  ",  ",  ",  ",  ",  "],
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ["1",  "2",  "3",  "4",  "5",  "6",  "7"],
# ]

Pandas 2.2 and above have built-in support of python-calamine.

Also, you can find additional examples in tests.

Development

You'll need rust installed.

# clone this repo or your fork
git clone git@github.com:dimastbk/python-calamine.git
cd python-calamine
# create a new virtual env
python3 -m venv env
source env/bin/activate
# install dev dependencies and install python-calamine
pip install --group dev -e .  # required pip 25.1 and above
# lint code
pre-commit run --all-files
# test code
pytest

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython (additional flags: t) 3.13 CPython (additional flags: t) 3.14 PyPy 3.11 (pp73)
macosx_10_12_x86_64
macosx_11_0_arm64
manylinux1_i686
manylinux2014_aarch64
manylinux2014_armv7l
manylinux2014_ppc64le
manylinux2014_s390x
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_armv7l
manylinux_2_17_ppc64le
manylinux_2_17_s390x
manylinux_2_17_x86_64
manylinux_2_5_i686
musllinux_1_1_aarch64
musllinux_1_1_armv7l
musllinux_1_1_x86_64
win32
win_amd64
win_arm64

Files in release

python_calamine-0.6.2-cp310-cp310-macosx_10_12_x86_64.whl (859.3KiB)
python_calamine-0.6.2-cp310-cp310-macosx_11_0_arm64.whl (838.6KiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.7KiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (884.6KiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (947.1KiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (915.4KiB)
python_calamine-0.6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (955.5KiB)
python_calamine-0.6.2-cp310-cp310-musllinux_1_1_aarch64.whl (1.1MiB)
python_calamine-0.6.2-cp310-cp310-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp310-cp310-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp310-cp310-win32.whl (682.9KiB)
python_calamine-0.6.2-cp310-cp310-win_amd64.whl (733.8KiB)
python_calamine-0.6.2-cp311-cp311-macosx_10_12_x86_64.whl (859.2KiB)
python_calamine-0.6.2-cp311-cp311-macosx_11_0_arm64.whl (838.5KiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (907.9KiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (884.4KiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (947.0KiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (915.4KiB)
python_calamine-0.6.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (956.1KiB)
python_calamine-0.6.2-cp311-cp311-musllinux_1_1_aarch64.whl (1.1MiB)
python_calamine-0.6.2-cp311-cp311-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp311-cp311-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp311-cp311-win32.whl (682.9KiB)
python_calamine-0.6.2-cp311-cp311-win_amd64.whl (734.3KiB)
python_calamine-0.6.2-cp311-cp311-win_arm64.whl (702.4KiB)
python_calamine-0.6.2-cp312-cp312-macosx_10_12_x86_64.whl (858.9KiB)
python_calamine-0.6.2-cp312-cp312-macosx_11_0_arm64.whl (838.5KiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (903.6KiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (884.1KiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (942.7KiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (913.2KiB)
python_calamine-0.6.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (951.2KiB)
python_calamine-0.6.2-cp312-cp312-musllinux_1_1_aarch64.whl (1.0MiB)
python_calamine-0.6.2-cp312-cp312-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp312-cp312-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp312-cp312-win32.whl (676.2KiB)
python_calamine-0.6.2-cp312-cp312-win_amd64.whl (731.4KiB)
python_calamine-0.6.2-cp312-cp312-win_arm64.whl (702.1KiB)
python_calamine-0.6.2-cp313-cp313-macosx_10_12_x86_64.whl (858.3KiB)
python_calamine-0.6.2-cp313-cp313-macosx_11_0_arm64.whl (838.2KiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (903.1KiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (882.5KiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (942.1KiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (913.1KiB)
python_calamine-0.6.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (950.7KiB)
python_calamine-0.6.2-cp313-cp313-musllinux_1_1_aarch64.whl (1.0MiB)
python_calamine-0.6.2-cp313-cp313-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp313-cp313-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp313-cp313-win32.whl (675.6KiB)
python_calamine-0.6.2-cp313-cp313-win_amd64.whl (730.9KiB)
python_calamine-0.6.2-cp313-cp313-win_arm64.whl (701.7KiB)
python_calamine-0.6.2-cp313-cp313t-macosx_10_12_x86_64.whl (857.4KiB)
python_calamine-0.6.2-cp313-cp313t-macosx_11_0_arm64.whl (837.2KiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (902.1KiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (881.4KiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (940.4KiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (912.3KiB)
python_calamine-0.6.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl (948.4KiB)
python_calamine-0.6.2-cp313-cp313t-musllinux_1_1_aarch64.whl (1.0MiB)
python_calamine-0.6.2-cp313-cp313t-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp313-cp313t-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp313-cp313t-win_amd64.whl (731.7KiB)
python_calamine-0.6.2-cp313-cp313t-win_arm64.whl (699.3KiB)
python_calamine-0.6.2-cp314-cp314-macosx_10_12_x86_64.whl (858.2KiB)
python_calamine-0.6.2-cp314-cp314-macosx_11_0_arm64.whl (837.7KiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (904.1KiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (881.7KiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl (941.2KiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (911.6KiB)
python_calamine-0.6.2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (950.2KiB)
python_calamine-0.6.2-cp314-cp314-musllinux_1_1_aarch64.whl (1.1MiB)
python_calamine-0.6.2-cp314-cp314-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp314-cp314-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp314-cp314-win32.whl (675.3KiB)
python_calamine-0.6.2-cp314-cp314-win_amd64.whl (732.0KiB)
python_calamine-0.6.2-cp314-cp314-win_arm64.whl (702.0KiB)
python_calamine-0.6.2-cp314-cp314t-macosx_10_12_x86_64.whl (856.3KiB)
python_calamine-0.6.2-cp314-cp314t-macosx_11_0_arm64.whl (837.3KiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (901.0KiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (880.4KiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.0MiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (942.0KiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (912.7KiB)
python_calamine-0.6.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (948.9KiB)
python_calamine-0.6.2-cp314-cp314t-musllinux_1_1_aarch64.whl (1.0MiB)
python_calamine-0.6.2-cp314-cp314t-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-cp314-cp314t-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2-cp314-cp314t-win_amd64.whl (730.9KiB)
python_calamine-0.6.2-cp314-cp314t-win_arm64.whl (697.6KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (862.5KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl (842.1KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (909.2KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (916.0KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (957.1KiB)
python_calamine-0.6.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl (1.1MiB)
python_calamine-0.6.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl (1.1MiB)
python_calamine-0.6.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl (1.1MiB)
python_calamine-0.6.2.tar.gz (134.8KiB)
No dependencies