Install & Compatibility
Where this runs
tested against v0.21.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
30MB installed
● package 30MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ExcelReader
✓ from fastexcel import ExcelReader
✗ from fastexcel import Reader
This quickstart demonstrates how to read an Excel file using `fastexcel`. It first creates a dummy Excel file with pandas, then initializes `fastexcel.Reader` to load data into an Apache Arrow Table, showing how to read by sheet index and sheet name.
import pandas as pd
from fastexcel import Reader
import os
# Create a dummy Excel file for demonstration
file_path = "dummy_data.xlsx"
data = {'ColumnA': [1, 2, 3], 'ColumnB': ['X', 'Y', 'Z']}
df = pd.DataFrame(data)
df.to_excel(file_path, index=False)
try:
# Initialize the reader with the Excel file path
reader = Reader(file_path)
# Load the first sheet into an Apache Arrow Table
table = reader.load_table(sheet_name=0)
print("\nData from first sheet (Arrow Table):")
print(table)
# To access sheet names, first call load_ws()
reader.load_ws() # Loads all worksheet metadata
if reader.ws_names:
first_sheet_name = reader.ws_names[0]
table_by_name = reader.load_table(sheet_name=first_sheet_name)
print(f"\nData from sheet '{first_sheet_name}' by name:")
print(table_by_name)
except Exception as e:
print(f"An error occurred: {e}")
finally:
# Clean up the dummy file
if os.path.exists(file_path):
os.remove(file_path)
print(f"\nCleaned up {file_path}")
Debug
Known issues
breakingFastexcel has dropped support for older Python versions. v0.17.1 dropped Python 3.9, and v0.13.0 dropped Python 3.8. The current minimum required Python version is 3.10.fixEnsure your Python environment is version 3.10 or higher before installing or upgrading fastexcel.
affects: <=0.16.x for Python 3.9; <=0.12.x for Python 3.8
gotchaSetting `schema_sample_rows=0` when initializing `Reader` is no longer allowed and will raise an error.fixUse a positive integer for `schema_sample_rows` to infer the schema from actual rows, or omit it entirely to use the default behavior (which is usually sufficient).
affects: >=0.12.1
gotchaPrior to v0.17.1, cells containing Excel error values like `#DIV/0!` might not have been consistently treated as null during type inference.fixUpgrade to `fastexcel` v0.17.1 or later to ensure that `#DIV/0!` cells are correctly interpreted as null values.
affects: <0.17.1
gotchaIn versions prior to v0.19.0, using `use_columns` with `load_table` when `column_names` was *not* specified could lead to incorrect behavior or errors.fixUpgrade to `fastexcel` v0.19.0 or later. If upgrading is not possible, ensure that `column_names` is also explicitly provided when using `use_columns` in older versions.
affects: <0.19.0
Upgrade
Version history
0.21.0latest on PyPI · released Aug 19, 2026
Audit
Dependencies
No dependency data recorded yet.