spire-xls
A 100% standalone Excel Python API for Processing Excel Files
What it is and what it does
Spire.XLS is a proprietary compiled Python library that provides a complete API for working with Excel files without installing Microsoft Office. It handles creation, reading, writing, and conversion of Excel spreadsheets in formats including .xls, .xlsx, .xlsb, .xlsm, and .ods. The library supports a wide range of operations: cell manipulation (merging, formatting, borders, fonts), worksheet management (add, copy, delete, hide), formulas and calculations, charts, images, comments, conditional formatting, and security features like encryption and digital signatures.
The package depends on plum-dispatch and is distributed as platform-specific compiled wheels for Windows, Linux (x64 and ARM64), and macOS (Intel and ARM64). It requires Python 3.7 or later. The library's main strength is its ability to convert Excel files to multiple formats (PDF, HTML, CSV, XML, TXT, SVG, XPS, ODS) and perform complex spreadsheet automation without external dependencies like LibreOffice or Microsoft Office.
Use it for:
- Automate batch conversion of Excel spreadsheets to PDF or other formats in server-side applications.
- Build data pipelines that read Excel files, manipulate cell data, and export to CSV or other formats.
- Generate Excel reports programmatically with formatted cells, charts, and formulas without Office.
- Encrypt or digitally sign Excel files for secure document distribution.
- Parse and extract data from legacy .xls files and modern .xlsx/.xlsm formats in a single codebase.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Spire.XLS is a compiled Python library for creating, reading, writing, and converting Excel spreadsheets without requiring Microsoft Office.
Yes, with conditions. Spire.XLS is actively maintained and offers comprehensive Excel functionality without Office dependencies, making it valuable for automation and conversion tasks. However, the unclear license status requires verification before production use—confirm whether your use case (commercial, open-source, internal) is permitted under the proprietary terms. The compiled nature and platform-specific wheels mean you must match your OS and architecture exactly.
Install
spire-xls on PyPI
pip
pip install spire-xlsuv
uv add spire-xlspoetry
poetry add spire-xlsInstalling spire-xls
Before you install
Medium install friction due to platform-specific wheels (Windows, Linux, macOS including ARM64). Actively maintained with a release within the last month. Depends on plum-dispatch, a lightweight runtime dependency.
License in practice
License treatment is unclear—classified as restricted/proprietary but with no SPDX identifier or raw license text provided. Verify licensing terms and any commercial restrictions before use in production.
Quickstart
pip install spire-xls
from spire.xls import Workbook
workbook = Workbook()
workbook.LoadFromFile('input.xlsx')
worksheet = workbook.Worksheets[0]
workbook.SaveToFile('output.pdf', FileFormat.PDF)
Requires Python 3.7 or later. Platform-specific wheel must match your OS and architecture (Windows x64, Linux x64/ARM64, macOS Intel/ARM64).
Verify before relying
- Whether the 'unclear' license permits commercial use without additional licensing fees or restrictions.
- Whether the library's compiled nature and proprietary status introduce any runtime licensing checks or phone-home behavior.
- Performance characteristics and memory footprint when processing large Excel files.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — plum-dispatch |
| Maintenance | actively maintained — 28 days since the last release |
| First released | |
| Downloads | 107,755/month — #12,599 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: spire_xls-16.7.1-py3-none-macosx_10_7_universal.whl; spire_xls-16.7.1-py3-none-macosx_11_0_arm64.whl; spire_xls-16.7.1-py3-none-manylinux2014_aarch64.whl; spire_xls-16.7.1-py3-none-manylinux_2_34_x86_64.whl; spire_xls-16.7.1-py3-none-win_amd64.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
spire-docSpire.Doc creates, reads, modifies, and…
unclear · top 15,000 on PyPI
aspose-cellsAspose.Cells for Python via Java is a library…
unclear · top 15,000 on PyPI
pylightxlReads and writes Microsoft Excel files (.xlsx,…
permissive · top 15,000 on PyPI
xlsx2csvConverts XLSX spreadsheet files to CSV format,…
permissive · top 5,000 on PyPI
pycelPycel translates Excel spreadsheets into…
copyleft · top 15,000 on PyPI
xlcalculatorReads MS Excel files and translates Excel…
permissive · top 15,000 on PyPI
formulasParses and compiles Excel formulas and…
copyleft · top 5,000 on PyPI
aspose-cells-pythonAspose.Cells for Python via .NET creates,…
unclear · top 15,000 on PyPI
xlwtGenerates Microsoft Excel 97–2003 XLS…
permissive · top 5,000 on PyPI
xlsxwriterXlsxWriter creates Excel 2007+ XLSX files from…
permissive · top 1,000 on PyPI