A high-performance Python library to read/write Excel 2010 xlsx/xlsm files
Project description
A high-performance, statically typed drop-in replacement for openpyxl.
fastpyxl reads and writes Excel 2010+ xlsx/xlsm/xltx/xltm files with the same API as openpyxl — just change your import:
# before
from openpyxl import Workbook, load_workbook
# after
from fastpyxl import Workbook, load_workbook
No other code changes required.
Performance
Benchmarked on a real-world 5.2 MB IMF/World Bank workbook (887,370 cells, 97k formulas). Median of 3 runs, Python 3.12:
Operation |
openpyxl |
fastpyxl |
Change |
|---|---|---|---|
Load workbook |
6.11s |
5.08s |
-16.9% |
Save workbook |
5.73s |
5.42s |
-5.4% |
Read-only iteration |
4.35s |
4.03s |
-7.4% |
Further optimizations are in progress. See the open performance issues for the roadmap.
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
1-to-1 API compatibility with openpyxl
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://fastpyxl.readthedocs.io
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastpyxl-1.0.1.tar.gz.
File metadata
- Download URL: fastpyxl-1.0.1.tar.gz
- Upload date:
- Size: 211.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e739cdea936c6bb562087af214b77381546f588c5e6378e9ad3d1aa0249ec59
|
|
| MD5 |
5695919c3515288b12d54919ddbc4d48
|
|
| BLAKE2b-256 |
ddbf9edcedc4fa10432ac1e1ed6b2f02dbbc1bbbef3b8bea4fdb2d34bb97dcfc
|
Provenance
The following attestation bundles were made for fastpyxl-1.0.1.tar.gz:
Publisher:
release.yml on Promptly-Technologies-LLC/fastpyxl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastpyxl-1.0.1.tar.gz -
Subject digest:
2e739cdea936c6bb562087af214b77381546f588c5e6378e9ad3d1aa0249ec59 - Sigstore transparency entry: 1200322480
- Sigstore integration time:
-
Permalink:
Promptly-Technologies-LLC/fastpyxl@5da5b0a2ce5f63d4521cabad4838c5f655d89eee -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Promptly-Technologies-LLC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5da5b0a2ce5f63d4521cabad4838c5f655d89eee -
Trigger Event:
push
-
Statement type:
File details
Details for the file fastpyxl-1.0.1-py3-none-any.whl.
File metadata
- Download URL: fastpyxl-1.0.1-py3-none-any.whl
- Upload date:
- Size: 286.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19d5c3a6d40f74f969ecdd20e3995eb81a44b827d33ab987288310606569e505
|
|
| MD5 |
7c0693daa5508dcb701a8818501cc95b
|
|
| BLAKE2b-256 |
6b3b0b2543189dc3adc0a54e92f476a2104e686cae224328a235ed9c860cae9c
|
Provenance
The following attestation bundles were made for fastpyxl-1.0.1-py3-none-any.whl:
Publisher:
release.yml on Promptly-Technologies-LLC/fastpyxl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastpyxl-1.0.1-py3-none-any.whl -
Subject digest:
19d5c3a6d40f74f969ecdd20e3995eb81a44b827d33ab987288310606569e505 - Sigstore transparency entry: 1200322499
- Sigstore integration time:
-
Permalink:
Promptly-Technologies-LLC/fastpyxl@5da5b0a2ce5f63d4521cabad4838c5f655d89eee -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Promptly-Technologies-LLC
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5da5b0a2ce5f63d4521cabad4838c5f655d89eee -
Trigger Event:
push
-
Statement type: