A high-performance, statically typed drop-in replacement for openpyxl >= 3.0.0 on Python >= 3.11.
fastpyxl reads and writes Excel 2010+ xlsx/xlsm/xltx/xltm files with the same API as openpyxl 3.x — just change your import:
# before
from openpyxl import Workbook, load_workbook
# after
from fastpyxl import Workbook, load_workbook
No other code changes are required for supported openpyxl 3.x usage. APIs removed before openpyxl 3.0 (and behaviour only present in openpyxl 2.x) are intentionally unsupported. See the compatibility guide for details.
Performance
Benchmarked on a real-world 5.2 MB IMF/World Bank workbook (887,370 cells, 97k formulas). Median of 5 runs, Python 3.12, openpyxl 3.1.5:
Operation |
openpyxl |
fastpyxl |
Change |
|---|---|---|---|
Load workbook |
7.29s |
5.58s |
-23.5% |
Save workbook |
5.70s |
5.74s |
+0.6% |
Read-only iteration |
4.84s |
4.07s |
-15.9% |
Key optimizations since 1.0.0: inlined cell parsing, O(1) sheet lookup, formula translation fast path, VBA archive filtering, empty-cell skip, and cached sheet names. See the changelog for details.
Installation
pip install fastpyxl
Quick start
from fastpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = 42
ws.append([1, 2, 3])
import datetime
ws["A2"] = datetime.datetime.now()
wb.save("sample.xlsx")
Key features
Drop-in API compatibility with openpyxl >= 3.0.0 (Python >= 3.11)
Static typing throughout
Optimized cell parsing, coordinate lookups, and style deduplication
Read-only and write-only modes for large files
Charts, images, comments, data validation, pivot tables
Conditional formatting and rich text
Pandas DataFrame integration
Security
By default fastpyxl does not guard against quadratic blowup or billion laughs XML attacks. To guard against these attacks install defusedxml.
Documentation
Full documentation: https://promptlytechnologies.com/fastpyxl/
Acknowledgements
fastpyxl is a fork of openpyxl. All credit to Eric Gazoni, Charlie Clark, and the openpyxl contributors whose work this project builds upon.
License
MIT. See LICENSE for details.
Metadata
Release files for fastpyxl 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastpyxl-1.1.0.tar.gz | 219.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastpyxl-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 513.0 kB
Release files / fastpyxl-1.1.0.tar.gz
| Download URL | fastpyxl-1.1.0.tar.gz |
|---|---|
| Size | 219.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34ee0ced98eb8aefb7a444d91b75c88cde4d93c11767caa6725053cd808aa169
|
|
BLAKE2b-256 checksum How to use checksums |
affdf0bab804f25c7b9d7908fb6bc9752638e0c721a3cc3f0c9096d1a137f614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / fastpyxl-1.1.0-py3-none-any.whl
| Download URL | fastpyxl-1.1.0-py3-none-any.whl |
|---|---|
| Size | 293.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0034950e827b52ef91abe56c83e781d44daa3a4aadb41d19bb0f5d627f7be17
|
|
BLAKE2b-256 checksum How to use checksums |
d7ae1bb37a4e7b8297e8c238d682d3911b83dd2b774dc7e6950d7b17f0f51453
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency log