openpyxl /

Filename Size Date modified Message
388 B
122 B
Trim trailing white space throughout the project
160 B
Harmonise EOL for ReST files.
274 B
fix test failed
5.2 KB
Added tag 2.6.2 for changeset 3640394bff97
1.6 KB
Fixed writing numpy numeric types to cell value.
192 B
1.1 KB
Remove the odict license from LICENCE.rst; odict is no longer in use
113 B
1.4 KB
Make defusedxml an optional dependency. If it's installed on the system, it
930 B
550 B
Make defusedxml an optional dependency. If it's installed on the system, it
59 B
Pin pytest because pytest 5 is dropping support for Python 2.7
67 B
2.5 KB
Update docs: Drop support for Python 3.4
2.5 KB
coverage status


openpyxl is a Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files.

It was born from lack of existing library to read/write natively from Python the Office Open XML format.

All kudos to the PHPExcel team as openpyxl was initially based on PHPExcel.


By default openpyxl does not guard against quadratic blowup or billion laughs xml attacks. To guard against these attacks install defusedxml.

Mailing List

The user list can be found on

Sample code:

from openpyxl import Workbook
wb = Workbook()

# grab the active worksheet
ws =

# Data can be assigned directly to cells
ws['A1'] = 42

# Rows can also be appended
ws.append([1, 2, 3])

# Python types will automatically be converted
import datetime
ws['A2'] =

# Save the file"sample.xlsx")


The documentation is at:

  • installation methods
  • code examples
  • instructions for contributing

Release notes: