skillfed

fastexcel

A fast excel file reader for Python, written in Rust

fastexcel v0.20.2 3.3M downloads/30d#2,680 on PyPI246
Permissive license Active released

What it is and what it does

fastexcel is a Python Excel reader written in Rust that prioritizes speed and memory efficiency. It reads .xlsx and .xls files and exposes data via the Arrow PyCapsule Interface, allowing zero-copy handoff to Arrow-compatible libraries. The core package is lightweight with only typing-extensions as a runtime dependency; optional extras add integration with external dataframe libraries.

Typical use is to call read_excel() to open a file, load_sheet() or load_table() to select data, then access the raw Arrow interface via __arrow_c_schema__() and __arrow_c_array__(), or convert using library-specific methods. The PyCapsule design reduces dependency bloat when used with compatible consumers. Production-ready for Python; the free-threaded build remains experimental.

Use it for:

  • Import Excel files into data pipelines where speed and memory efficiency are priorities.
  • Load Excel tables (named ranges) directly for structured data extraction.
  • Integrate Excel as a data source in applications requiring fast file reading.
  • Replace slower Excel readers in performance-sensitive batch processing jobs.
  • Access Excel data via the Arrow PyCapsule Interface for zero-copy integration.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Reads Excel files (.xlsx, .xls) into Python with zero-copy data exchange via the Arrow PyCapsule Interface, enabling direct use with compatible libraries without intermediate conversions.

Yes, if you need fast Excel reading and want to minimize dependencies. The package is production-ready, actively maintained, has no known vulnerabilities, and offers genuine performance gains over standard libraries. Install friction is moderate but manageable via prebuilt wheels. Not necessary if you rarely read Excel or have no performance constraints.

Install

fastexcel on PyPI

pip

pip install fastexcel

uv

uv add fastexcel

poetry

poetry add fastexcel

Installing fastexcel

Before you install

Medium install friction due to compiled Rust wheels, but prebuilt binaries cover common platforms (x86_64, ARM64, macOS, Linux, Windows). Active maintenance with last commit 2026-08-10. Single lightweight runtime dependency (typing-extensions).

License in practice

MIT license (permissive) allows commercial and private use with minimal restrictions—standard open-source terms with no copyleft obligations.

Quickstart

pip install fastexcel

import fastexcel

reader = fastexcel.read_excel("data.xlsx")
sheet = reader.load_sheet(0)
schema = sheet.__arrow_c_schema__()
array_data = sheet.__arrow_c_array__()

Requires Python 3.10 or later. Optional integration with external libraries (Pandas, Polars) requires their separate installation.

Verify before relying

  • Whether free-threaded build stability has improved since the experimental designation in the description.
  • Performance benchmarks comparing fastexcel to other Excel readers on typical workloads.
  • Support for Excel features beyond basic cell data (formulas, formatting, merged cells).
  • Actual zero-copy performance gains in real-world scenarios with different file sizes.

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 1 — typing-extensions
Maintenance actively maintained — 102 days since the last release
Last repo commit
First released
Downloads 3,262,951/month — #2,680 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: fastexcel-0.20.2-cp310-abi3-macosx_10_12_x86_64.whl; fastexcel-0.20.2-cp310-abi3-macosx_11_0_arm64.whl; fastexcel-0.20.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fastexcel-0.20.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fastexcel-0.20.2-cp310-abi3-musllinux_1_2_aarch64.whl; fastexcel-0.20.2-cp310-abi3-musllinux_1_2_x86_64.whl; fastexcel-0.20.2-cp310-abi3-win_amd64.whl; fastexcel-0.20.2-cp310-abi3-win_arm64.whl; fastexcel-0.20.2-cp314-cp314t-macosx_10_12_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-macosx_11_0_arm64.whl; fastexcel-0.20.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; fastexcel-0.20.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-musllinux_1_2_aarch64.whl; fastexcel-0.20.2-cp314-cp314t-musllinux_1_2_x86_64.whl; fastexcel-0.20.2-cp314-cp314t-win_amd64.whl

Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Free Threading :: 1 - UnstableProgramming Language :: Python :: Implementation :: CPythonProgramming Language :: Rust

Tags

excel file reader pythonfast xlsx parserexcel import rustarrow pycapsule interfaceexcel to dataframehigh performance excel readerexcel data loading
rust-backeddata-loadingarrow-native

More Front-Ends packages