Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to read xlsx file in Python

Understanding the xlsx File Format

Before we dive into how to read xlsx files in Python, let's clarify what an xlsx file is. In simple terms, xlsx is a file extension for an open XML spreadsheet file format used by Microsoft Excel. Think of it like a container that holds tables of data.

Why Python?

Python is a versatile and widely-used programming language. One of its many uses is data analysis, which often involves reading and manipulating spreadsheet files. Python is a great tool for this task because it offers libraries that make it easy to interact with spreadsheet data programmatically.

Setting Up Your Environment

To read xlsx files in Python, you need to install the openpyxl library. This is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. It's like a translator, allowing Python and Excel to understand each other.

To install openpyxl, open your terminal and type the following command:

pip install openpyxl

Reading an xlsx file in Python

Now that we have openpyxl installed, we can start coding. The first thing we need to do is import the library into our script.

from openpyxl import load_workbook

To read an Excel spreadsheet, we use the load_workbook() function, which is like telling Python to fetch and open our xlsx file.

workbook = load_workbook(filename="my_excel_file.xlsx")

Remember to replace "my_excel_file.xlsx" with the path to the Excel file you want to read.

An Excel file can contain multiple sheets. To get the names of all the sheets in the file, you use the .sheetnames attribute.


This will print a list of sheet names.

To select a specific sheet, you use the square bracket notation, ['SheetName'].

sheet = workbook['Sheet1']

Now, think of this sheet as a grid. You can access each cell in this grid using the cell's row and column.

cell = sheet['A1']

This will print the value in the first cell of the sheet.

Iterating over Rows and Columns

To read more than one cell at a time, we can iterate over the rows or columns. Imagine walking through each row of the sheet one by one, reading all the cells in that row before moving on to the next. That's what iteration is.

Here's how you can iterate over rows:

for row in sheet.iter_rows(values_only=True):

This will print a tuple for each row. If you want to iterate over columns, you can use iter_cols() instead.

Closing Thoughts

Reading xlsx files in Python using openpyxl might feel like learning a new language. But once you get the hang of it, you'll see that it's just another way of interacting with data - like having a conversation with your spreadsheet. The more you practice, the more fluent you'll become.

And remember, Python doesn't know what your data means. It's just a tool for you to use. The real magic lies in how you use that tool to uncover the stories hidden in your data.

Now, go forth and explore your data. Who knows what you'll discover?