Data Science & Analysis

openpyxl

Lets a Python script read and write real Excel files, formulas, formatting and all.

Install it: pip install openpyxl

What does it do?

Openpyxl lets a piece of code open, edit, and save genuine Excel .xlsx files, the same format that opens in Microsoft Excel, including cell colors, formulas, and multiple sheets, not just plain rows of numbers. Think of it as giving a computer program the ability to sit down and use Excel the way a person would, clicking into cells and typing values, except it can do that thousands of times a second. That’s especially useful for generating reports automatically instead of a person manually copying numbers into a spreadsheet template every week.

See it in action

This code creates a new Excel spreadsheet file, adds a header row and a row of data, and saves it to disk.

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws["A1"] = "Product"
ws["B1"] = "Sales"
ws.append(["Widgets", 1500])
wb.save("report.xlsx")

Why would a non-developer care?

Anyone who has spent an afternoon manually pasting numbers into the same recurring Excel report understands exactly the tedious, error-prone task openpyxl exists to eliminate by automating it entirely.

Real-world examples

Openpyxl is a common backbone for automated reporting systems in finance, HR, and operations teams who need to generate formatted Excel files on a schedule without a person opening Excel by hand each time. Without a library like this, businesses would either pay for specialized reporting software or keep relying on manual copy-and-paste work that’s slow and prone to mistakes.

Who uses it

Business analysts and developers automating the creation or editing of Excel reports, especially ones that run on a recurring schedule without manual work.

How it compares to alternatives

Openpyxl is often compared with xlrd and xlwt, older libraries that handled Excel files but with more limited feature support and, in xlrd’s case, dropped support for the modern xlsx format entirely; pandas actually uses openpyxl behind the scenes when you tell it to save a DataFrame as an Excel file.

Fun fact

The modern Excel xlsx format is technically just a folder of XML files compressed into a zip archive, and openpyxl handles all of that hidden complexity so you never have to see it.

New to Python and want to actually try libraries like this yourself?

Find a beginner-friendly course

Related libraries