Skip to main content

A fast, Rust-powered Excel xlsx library for Python with openpyxl-compatible API

Project description

rustypyxl

A high-performance Excel (XLSX) library for Python, written in Rust. Drop-in replacement for openpyxl with 10-20x faster read/write performance.

Installation

pip install rustypyxl

Usage

import rustypyxl

# Load a workbook
wb = rustypyxl.load_workbook('input.xlsx')
ws = wb.active

# Read values
value = wb.get_cell_value('Sheet1', 1, 1)

# Write values
wb.set_cell_value('Sheet1', 1, 1, 'Hello')
wb.set_cell_value('Sheet1', 2, 1, 42.5)
wb.set_cell_value('Sheet1', 3, 1, '=SUM(A1:A2)')

# Bulk operations (fastest)
wb.write_rows('Sheet1', [
    ['Name', 'Age', 'Score'],
    ['Alice', 30, 95.5],
    ['Bob', 25, 87.3],
])

data = wb.read_rows('Sheet1', min_row=1, max_row=100)

# Save
wb.save('output.xlsx')

Features

  • Fast: 10-20x faster than openpyxl for large files
  • Compatible: Drop-in replacement for common openpyxl patterns
  • Full-featured:
    • Cell values (string, number, boolean, date, formula)
    • Cell formatting (font, alignment, fill, borders, number formats)
    • Comments and hyperlinks
    • Named ranges
    • Sheet protection
    • Data validation
    • Merged cells
    • Column/row dimensions
    • Configurable compression

Performance

In micro benchmarks on M1 MacBook (1M rows × 20 columns):

Operation rustypyxl openpyxl Speedup
Write ~10s ~200s 20x
Read ~11s ~180s 16x

Read Performance vs calamine

rustypyxl is also faster than calamine, a popular Rust Excel reader (with Python bindings via python-calamine):

Dataset rustypyxl calamine openpyxl vs calamine vs openpyxl
10k × 20 (numeric) 0.13s 0.21s 1.16s 1.7x 9.1x
10k × 20 (strings) 0.14s 0.26s 2.97s 1.9x 21x
100k × 20 (numeric) 0.84s 1.76s 11.5s 2.1x 14x
100k × 20 (mixed) 1.40s 2.36s 32.9s 1.7x 24x

Unlike calamine (read-only), rustypyxl also supports writing Excel files.

Building from Source

# Install Rust and maturin
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install maturin

# Build
maturin develop --release

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rustypyxl-0.1.1-cp314-cp314-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.14Windows x86-64

rustypyxl-0.1.1-cp314-cp314-manylinux_2_34_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

rustypyxl-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rustypyxl-0.1.1-cp313-cp313-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.13Windows x86-64

rustypyxl-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

rustypyxl-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rustypyxl-0.1.1-cp312-cp312-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.12Windows x86-64

rustypyxl-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

rustypyxl-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rustypyxl-0.1.1-cp311-cp311-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.11Windows x86-64

rustypyxl-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

rustypyxl-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rustypyxl-0.1.1-cp310-cp310-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.10Windows x86-64

rustypyxl-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

rustypyxl-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file rustypyxl-0.1.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: rustypyxl-0.1.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustypyxl-0.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b7dbae495446660824ee548e580b1dba00aff37859fd23b91a3de518bcb917ce
MD5 4f7afecd410b1d8b1d2a6f59a14fb327
BLAKE2b-256 4cb5e654d7ec1ca755fc0e2848fa73aa5e87f2031959390a20a9d0b5edd4c959

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b0e93e43fbe44225992f2090847b95eddb7de4afb921a53c454c06033cbbb93b
MD5 11f32d96421816a967977ecc63034da3
BLAKE2b-256 c7031e43dffc34c342f76c913f961836e957a44378c6ddf9b6c5dba853855c34

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddb1d77703944db19409458415dd34b2531b058464b1e840ca9b261be9d8f3d1
MD5 40f9cdcba2fdb6d9d91e39af2b74446d
BLAKE2b-256 6bd71250a264eaf586ff480ccb5497e1e62a41c864d6bd628ccd20591f12ac32

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rustypyxl-0.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustypyxl-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 29e036ffef2a0eb5db7433bb500d872ab4559d2f752643e9e288531484be4690
MD5 cde039164fa5bc7f6e7db34213477da3
BLAKE2b-256 5dacffe646dc0ab7dfc57ae77071983889c2b64b7c098cb959765f33c4d557ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 efb1180b4140b8b1c50a248842df9b0c65bb5579044d52bf0aca2fe61ef625e7
MD5 67e797b4e18fb35eb4fab71a901f7ce4
BLAKE2b-256 c0e07e39f1850267657de43d419b94010087b9d267ec001c9e87886a96b0ac9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b80007f607e9a566271fa5fa17e21b4b9e96c6d62c4d847cbfed840c2974a61e
MD5 c35d49eb84bbe7758c8c5d8da0448be1
BLAKE2b-256 acf392867c0639557e128d61d37e0242d3c0811945e06ec53a4eb98cd3e40d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rustypyxl-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustypyxl-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 68535fac409d239c8e54e8522e7ac9b422f61cad813060899a5c159f8b0d5228
MD5 ce0f7757f69f9b75051953fce12f6f58
BLAKE2b-256 59bb6906f0d15a2aa8655ec6c6fb104e6605247ccade1b73468ed00da2ef8430

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0bdc87d83f0f674a480e4c80be7a448d6b58c2d9916361cccb8e0968b4b626bb
MD5 aa549a68a8776541dd065c2af5549191
BLAKE2b-256 59a0ee25c3b6ae1069670b99a1eb3132aefadec4f28e13d6d3fee6cc481f9835

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a91984e723a6c1c29f1b4ca139724175cb85be7bf319de78772f833af5817e5f
MD5 8bc6829835c79d05d636b5ec1ac0177a
BLAKE2b-256 f7eb922064a8917970114bba2def3b8be7af254dc5210511c59779fc75dd1275

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rustypyxl-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustypyxl-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1b4c88785e67dec04e3f22abd5c82e1296da60834624ba87b471630ff26739e6
MD5 fb3e807bc070febf9a9511bf9ec444d0
BLAKE2b-256 100d741e2d83cc0ea1f348a8881b44f49162dcde15c66759478462eb8e0b10f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 cf82676df9526150cf881048152c6feb0c40304475ff17faefc9b53b3b791bb2
MD5 627c4f45a993da43a7ff49e3654b0507
BLAKE2b-256 f47a3fdab0c504ec982b16a9abc998474261e4d0678f4ea14555169486dff81f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3792bb76732962ec555825621ec6e824bfc35cbfe0d32d7e262ae9b251afda96
MD5 1a3c4d6336fb2f7148fa6de507668a4f
BLAKE2b-256 c21a9ea080dae15e4803f47e7890d7802b5451d7d60698d54937e6e1fe2838a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rustypyxl-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rustypyxl-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5c7f13cc526fa2382c660e53bfb973235eed44816dd22a83d5cb73bf9a74f59d
MD5 7d78041ce363a4de20976644a5ae3219
BLAKE2b-256 7fb987b3aecad1671b1292321141defc86f7de06b99b9b31ae28827dbe348016

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dd3ba89fbe8d1810c432c6bec140744790f28e2567b9729b766ad8da93bfdb8c
MD5 3867494a7476fa2c40d709dd849570d0
BLAKE2b-256 cded75f8662f92267be263a3de2c0785da7aaadc7424a6ec0dbc966594dbdf6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rustypyxl-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rustypyxl-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61391d0d46559075b9de8a6a3110ea31763ed221294533ec8054dbbe04ca4470
MD5 a989b4f4c89c2bb3e5f3de9701c60747
BLAKE2b-256 06026a74584486d68993f9c387351c196507e6c8ac84f2f58d99d5a6c7c9a94d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rustypyxl-0.1.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on freeeve/rustypyxl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page