$npx skillfedfor your agent

openpyxl

A Python library to read/write Excel 2010 xlsx/xlsm files

Worth itPyPI Released Jun 2024350.9M downloads / moMITPure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — openpyxl-3.1.5-py2.py3-none-any.whl
v3.1.5 · released 2024-06-28 · Python >=3.8 · 1 runtime deps: et-xmlfile

Yes, for stable, low-friction Excel I/O in Python. openpyxl is widely used, has no known vulnerabilities, and requires only one dependency. The dormant maintenance status is acceptable for a Production/Stable library handling a mature file format, but you should not expect rapid fixes for edge cases or new Excel features. If you need active development or advanced features, verify the package meets your specific xlsx variant and Python version requirements first.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • The package does not guard against XML attacks (quadratic blowup, billion laughs) by default; install defusedxml separately if processing untrusted Excel files.
  • Installation is straightforward with a single runtime dependency (et-xmlfile) and a pure-Python wheel.
  • The package is dormant (last release 777 days ago) but marked Production/Stable; users should expect no active maintenance or rapid bug fixes.

License · maintenance · safety

MIT (permissive) — MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute openpyxl freely as long as you retain the license notice.

last release 2024-06-28 (777 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 350,917,515 downloads/mo, #117 on PyPI

Verify before relying

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = 42
ws.append([1, 2, 3])
wb.save('sample.xlsx')
  • Whether dormant status (777 days since last release) affects compatibility with recent Excel versions or Python patch releases.
  • Performance characteristics when handling large spreadsheets or complex formulas.
  • Extent of xlsm macro support and any limitations in formula preservation.
Same gist for agents: .md · .json

What it is and what it does

openpyxl is a Python library for reading and writing Excel 2010 format files (xlsx, xlsm, xltx, xltm). It implements the Office Open XML standard natively in Python, eliminating the need for external Excel installations or COM libraries. The package handles cell assignment, row/column operations, data type conversion, and file I/O through a straightforward API.

The library depends only on et-xmlfile for XML handling and supports Python 3.6 through 3.11. It is marked Production/Stable but has entered dormancy (no releases in 777 days), meaning it receives no active maintenance. The documentation notes that by default openpyxl does not protect against XML denial-of-service attacks; users handling untrusted files should install defusedxml separately.

Use it for

  • Automate generation of Excel reports from Python data sources or database queries.
  • Parse and extract data from existing xlsx files for analysis or transformation.
  • Build spreadsheet templates programmatically with formulas, formatting, and multiple sheets.
  • Batch process multiple Excel files without requiring Excel or LibreOffice to be installed.
  • Convert data between Excel and other formats (CSV, JSON, databases) in data pipelines.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes, for stable, low-friction Excel I/O in Python.

openpyxl is widely used, has no known vulnerabilities, and requires only one dependency. The dormant maintenance status is acceptable for a Production/Stable library handling a mature file format, but you should not expect rapid fixes for edge cases or new Excel features. If you need active development or advanced features, verify the package meets your specific xlsx variant and Python version requirements first.

Install

openpyxl on PyPI

Before you install

Installation is straightforward with a single runtime dependency (et-xmlfile) and a pure-Python wheel. The package is dormant (last release 777 days ago) but marked Production/Stable; users should expect no active maintenance or rapid bug fixes.

The package does not guard against XML attacks (quadratic blowup, billion laughs) by default; install defusedxml separately if processing untrusted Excel files.

License in practice

MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute openpyxl freely as long as you retain the license notice.

Quickstart

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = 42
ws.append([1, 2, 3])
wb.save('sample.xlsx')

Verify before relying

  • Whether dormant status (777 days since last release) affects compatibility with recent Excel versions or Python patch releases.
  • Performance characteristics when handling large spreadsheets or complex formulas.
  • Extent of xlsm macro support and any limitations in formula preservation.

Package facts

LicenseMIT permissive
Python supportSupports the current Python release >=3.8
Install frictionLow. Pure-Python wheel
Runtime dependencies
1 package
et-xmlfile
MaintenanceDormant 777 days since the last release
First released
Downloads350,917,515 / month, #117 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Evidence: openpyxl-3.1.5-py2.py3-none-any.whl

Tags

Capabilities
read write excel files pythonxlsx xlsm python libraryexcel spreadsheet automationcreate modify excel workbookspython office open xmlexcel data extraction pythonxlsx parser writer
Topics
spreadsheet-iooffice-automation

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “create modify excel workbooks”

  • openpyxlopenpyxl reads and writes Excel 2010 xlsx/xlsm/xltx/xltm files…
  • xlutilsxlutils provides utilities for reading, writing, copying, and…
  • excel-mcp-serverProvides a Model Context Protocol server that enables AI agents to…

Give your agent the search over MCP, or paste the wish link into any chat.

Similar packages

PyExcelerate Worth it
PyPI · Utilities · released May 2025

PyExcelerate writes Excel XLSX spreadsheet files from Python with an emphasis on speed, offering multiple performance tiers for bulk data, cell-by-cell writes, and styling operations.

BSD-3-Clausepure Python
521.8Kdownloads / mo
pylightxl With conditions
PyPI · Utilities · released Jan 2023

Reads and writes Microsoft Excel files (.xlsx, .xlsm) and CSV files with zero external dependencies, using only Python standard library.

MITbuilds from source · 2.7+dormant
271.0Kdownloads / mo
pyxlsx With conditions
PyPI · Utilities · released Jul 2020

Provides dictionary-like read and write access to Excel worksheets through openpyxl, letting you treat spreadsheet rows as structured data objects.

However, be aware that maintenance is inactive—if you encounter bugs or need compatibility updates, you may need to fork or switch to openpyxl directly.

MITpure Python · 3.5+dormant
230.7Kdownloads / mo
xlrd3 With conditions
PyPI · Python Modules · released Apr 2021

Reads data from Excel spreadsheet files (.xls and .xlsx formats) and extracts cell values, sheet metadata, and row/column information for programmatic access.

BSD-3-Clausepure Python · 3.6+abandoned
220.9Kdownloads / mo
xlsxwriter Worth it
PyPI · released Sep 2025

XlsxWriter creates Excel 2007+ XLSX files from Python, supporting text, numbers, formulas, charts, images, and formatting without external dependencies.

BSD-3-Clausepure Python · 3.8+
113.3Mdownloads / mo
drf-excel Worth it
PyPI · WWW/HTTP · released Aug 2026

Adds an Excel spreadsheet (xlsx) renderer to Django REST Framework, allowing API views to export data directly as formatted Excel files using OpenPyXL.

Install it if you need to export API data to Excel.

BSD-3-Clausepure Python · 3.10+
150.7Kdownloads / mo

See also xlwings · aspose-cells-python · pycel · pyexcel-xlsx