fastpyxl
A high-performance Python library to read/write Excel 2010 xlsx/xlsm files
Links
AI / Agents
Developers
Meta
Requires: Python >=3.11
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_workbookNo 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 fastpyxlQuick 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.