excelrd
Library for developers to extract data from Microsoft Excel (tm) spreadsheet files
What it is and what it does
excelrd is a maintained fork of the xlrd library that restores compatibility with Python 3.9 and newer versions. The original xlrd stopped being updated and became incompatible with modern Python; excelrd solves that by providing the same API for reading Microsoft Excel .xls files. It extracts cell values, sheet metadata, and workbook structure while ignoring charts, macros, formulas, and other embedded objects.
The package is a library for developers, not an end-user tool. It supports Python 3.7 through 3.11 and runs on CPython and PyPy. Installation is straightforward (no runtime dependencies), and migration from xlrd is as simple as changing the import statement. The maintainer notes that formulas are ignored (only their calculated results are extracted) and password-protected files are not supported.
Use it for:
- Migrate code from xlrd to a Python 3.9+ compatible library without rewriting spreadsheet reading logic.
- Extract tabular data from .xls workbooks in data processing pipelines that must run on modern Python.
- Read cell values, row/column counts, and sheet names from Excel files in batch data workflows.
- Parse legacy .xls files in applications where upgrading to newer Excel formats is not feasible.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Extracts data from Microsoft Excel spreadsheet files (.xls format) for Python 3.7 and newer, addressing the incompatibility of the original xlrd library with Python 3.9+.
Yes, if you need to read .xls files in Python 3.9+. The package is stable, has no security vulnerabilities, and carries a permissive BSD license. However, maintenance is abandoned (last release July 2023, 1133 days ago), so it will not receive bug fixes or feature updates. Use it only for legacy .xls support; for new projects, consider xlsx-capable alternatives.
Install
excelrd on PyPI
pip
pip install excelrduv
uv add excelrdpoetry
poetry add excelrdInstalling excelrd
License in practice
BSD-style license (permissive) means you can use, modify, and distribute the package freely in commercial and open-source projects with minimal restrictions.
Quickstart
pip install excelrd
import excelrd
book = excelrd.open_workbook("file.xls")
sheet = book.sheet_by_index(0)
for row_idx in range(sheet.nrows):
for col_idx in range(sheet.ncols):
cell_value = sheet.cell(row_idx, col_idx).value
Requires Python 3.7 or newer; designed for .xls files (legacy Excel format).
Verify before relying
- Whether the package handles .xlsx (modern Excel) format or only legacy .xls files
- Performance characteristics or limits when processing large spreadsheets
- Completeness of API compatibility with original xlrd for existing codebases
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,133 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 235,134/month — #9,008 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: excelrd-3.0.0-py3-none-any.whl
Keywords: xls, excel, spreadsheet, workbook
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
xlrdxlrd reads data and formatting information from…
permissive · top 1,000 on PyPI
xlrd3Reads data from Excel spreadsheet files (.xls…
permissive · top 15,000 on PyPI
pyxlsbParses Excel 2007-2010 Binary Workbook (xlsb)…
copyleft · top 5,000 on PyPI
xlwingsxlwings lets you call Python from Excel and…
permissive · top 5,000 on PyPI
python-calamineReads Excel and ODF spreadsheet files via a…
permissive · top 5,000 on PyPI
xlwtGenerates Microsoft Excel 97–2003 XLS…
permissive · top 5,000 on PyPI
xls2xlsxConverts legacy Excel files (.xls), HTML…
permissive · top 5,000 on PyPI
xlutilsxlutils provides utilities for reading,…
permissive · top 5,000 on PyPI
numbers-parserRead, edit, and write Apple Numbers spreadsheet…
permissive · top 5,000 on PyPI
xlcalculatorReads MS Excel files and translates Excel…
permissive · top 15,000 on PyPI