The best ones, as I worked with them, are XlsxWriter and xlwings. Both work smoothly and efficiently and are compatible with Python and Excel.

Xlwings Has two versions: Free and Pro (paid version). The free version can do almost anything you need to work with an Excel file. With the paid version, you can get more functionality and support, which developers (not regular users) do not usually need.

On the other hand, XlsxWriter It is also an excellent choice. Its user community has been growing fast recently. It supports everything you need to work with an Excel file.

Both can be installed simply with uv, pip and conda.

The other libraries, such as xlrd and xlwt (unfortunately, the maintainer hasn't updated it since Aug 22, 2017), were designed in the past to handle the old version (.xls) files. They are not comparable to the other two libraries that I mentioned.

OpenPyXl is also a decent library that can handle most of your needs. However, it needs more support to grow. In my opinion, it is not yet mature.

The pandas and the PyExcel libraries are also suitable for reading and writing data to an Excel file. I prefer pandas because it is a mature and efficient library that can handle large datasets. pyexcel is a wrapper API that is less capable than Pandas and more complicated to work with.

PyXLL is a professional library that can handle almost everything a user wants in Excel with Python. One of the famous companies working on Python distributions supports the library. Unfortunately, there is no free or community version of it, and you can only choose a 30-day trial of the pro version. After that, you must pay at least $29 (USD) per month, or $299 (USD) per year. It is powerful, but it is an expensive choice for a single developer.

IronXL is another library that offers a 30-day free trial. However, after that, the cheapest license (Lite) is $749 USD for one year, and you must pay for renewal each year with a discount, which is still expensive. I personally didn't try it, but as I saw what they offer, I don't know why it is so expensive.

Of course, there are more. Libraries, Wrapers and APIs for handling Excel files (for example, a list of some open source libraries can be found in Python for Excel), but the ones that I mentioned are the most mature and popular libraries.

Answer from Reza K Ghazi on Stack Overflow
🌐
Python-excel
python-excel.org
Python Resources for working with Excel - Working with Excel Files in Python
The recommended package for reading and writing Excel 2010 files (ie: .xlsx) ... An alternative package for writing data, formatting information and, in particular, charts in the Excel 2010 format (ie: .xlsx) ... Library with a unified api for reading and writing files with older Excel format (xls), Excel 2010 format (xlsx), OpenDocument Spreadsheet format (ods), and many others.
Top answer
1 of 3
13

The best ones, as I worked with them, are XlsxWriter and xlwings. Both work smoothly and efficiently and are compatible with Python and Excel.

Xlwings Has two versions: Free and Pro (paid version). The free version can do almost anything you need to work with an Excel file. With the paid version, you can get more functionality and support, which developers (not regular users) do not usually need.

On the other hand, XlsxWriter It is also an excellent choice. Its user community has been growing fast recently. It supports everything you need to work with an Excel file.

Both can be installed simply with uv, pip and conda.

The other libraries, such as xlrd and xlwt (unfortunately, the maintainer hasn't updated it since Aug 22, 2017), were designed in the past to handle the old version (.xls) files. They are not comparable to the other two libraries that I mentioned.

OpenPyXl is also a decent library that can handle most of your needs. However, it needs more support to grow. In my opinion, it is not yet mature.

The pandas and the PyExcel libraries are also suitable for reading and writing data to an Excel file. I prefer pandas because it is a mature and efficient library that can handle large datasets. pyexcel is a wrapper API that is less capable than Pandas and more complicated to work with.

PyXLL is a professional library that can handle almost everything a user wants in Excel with Python. One of the famous companies working on Python distributions supports the library. Unfortunately, there is no free or community version of it, and you can only choose a 30-day trial of the pro version. After that, you must pay at least $29 (USD) per month, or $299 (USD) per year. It is powerful, but it is an expensive choice for a single developer.

IronXL is another library that offers a 30-day free trial. However, after that, the cheapest license (Lite) is $749 USD for one year, and you must pay for renewal each year with a discount, which is still expensive. I personally didn't try it, but as I saw what they offer, I don't know why it is so expensive.

Of course, there are more. Libraries, Wrapers and APIs for handling Excel files (for example, a list of some open source libraries can be found in Python for Excel), but the ones that I mentioned are the most mature and popular libraries.

2 of 3
4

Below are a few libraries which do that. Recommend going through them as per your requirements.

  1. Pycel
  2. formulas
  3. Pandas
  4. xlwt
  5. Openpyxl

They all blend with excel really well. You can try these out.

Discussions

Best Excel Library?
Are you good at excel already? That’s half the struggle right there. My first self-conceived project was reading an excel file with openpyxl. It wasn’t particularly hard and I’ve since done a ton of neat stuff using openpyxl to automate reports and stuff like that at work. The book ‘Automate the Boring Stuff’ has a pretty good primer on using openpyxl. Pandas is another option and their documentation/site has a 10 minute introduction tutorial that can get you started there. Pandas is definitely the way to go if you know you’ll need python to do the heavy lifting when it comes to working with the data itself. Openpyxl is good at interacting with excel files whereas pandas is more of a replacement for excel as the tool you use to interact with data. A pandas dataframe is conceptually very similar to an excel sheet. More on reddit.com
🌐 r/learnpython
64
37
November 3, 2022
Reading/parsing Excel (xls) files with Python - Stack Overflow
What's left for infrastructure-as-code after AI moves... Building more than just an agent... ... 96 Reading Excel File using Python, how do I get the values of a specific column with indicated column name? 7 Programmatically extract data from an Excel spreadsheet · 17 Is it possible to read data from an Excel sheet in Python using Xlsxwriter? If so how? 7 Which library ... More on stackoverflow.com
🌐 stackoverflow.com
Python library for handling Excel files (xls | xlsx) - Stack Overflow
I need a python library that could read and write Excel files with all formats (i.e xls and xlsx). I'm new to python and I was using Java before. In Java I was using POI library and it was perfect... More on stackoverflow.com
🌐 stackoverflow.com
Python library for reading and writing both .xls and .xlsx files.
I believe Pandas will open both types. http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html More on reddit.com
🌐 r/learnpython
9
19
July 22, 2015
🌐
OpenPyXL
openpyxl.readthedocs.io
openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.1.3 documentation
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.
🌐
GeeksforGeeks
geeksforgeeks.org › python › reading-excel-file-using-python
Reading an excel file using Python - GeeksforGeeks
June 16, 2026 - Unlike pandas or openpyxl, it opens Excel in the background and allows automation such as formatting, formulas, and charts.
🌐
Reddit
reddit.com › r/learnpython › best excel library?
r/learnpython on Reddit: Best Excel Library?
November 3, 2022 -

Hi Community, I am new to Python and want do a project in Python with an Excel file. I want to read the data from two different cols and compair each pair to look if it is correct pair or not. What library would you recommend to do this, and what should I take in mind? Because I heard that working with excel is not easy task Thanks in advance

🌐
DEV Community
dev.to › mhamzap10 › 7-python-excel-libraries-in-depth-review-for-developers-4hf4
7 Python Excel Libraries: In-Depth Review for Developers - DEV Community
July 19, 2024 - IronXL for Python is an advanced library that excels in creating, editing, and extracting data from Excel files. It provides a robust solution for users who need to work extensively with Excel files in a .NET framework context.
🌐
Pythonexcel
pythonexcel.com
Python Excel - A Guide to Read/Write Excel Files in Python
However it is a good library to start practicising with Python and excel. ... Excel is a very powerful and popular software for spreadsheets. Openpyxl helps in reading and modifying excel spreadsheet files through python programs. Sometimes you have to copy certain data from one spreadsheet ...
Find elsewhere
🌐
Sheetflash
sheetflash.com › blog › the-best-python-libraries-for-excel-in-2024
The Best Python Libraries for Excel in 2025 | SheetFlash
Use Case: Automating data integration workflows across multiple departments, facilitating real-time updates and visualization directly in Excel. It handles reading and writing .xlsx and .xlsm files and focuses on providing a straightforward API for these operations. Price: Free and open-source. What It Can Do: Pylightxl is designed for ease of use, offering simple syntax for reading and writing data, ideal for beginners who want quick results. Limitations: It lacks advanced features found in other libraries, such as robust data visualization and complex formula writing capabilities.
🌐
GeeksforGeeks
geeksforgeeks.org › python › python-reading-excel-file-using-openpyxl-module
Reading an excel file using Python openpyxl module - GeeksforGeeks
July 28, 2025 - Openpyxl is a Python library for reading and writing Excel (with extension xlsx/xlsm/xltx/xltm) files. The Openpyxl Module allows Python programs to read and modify Excel files. For example, users might have to go through thousands of rows and ...
🌐
Excelpython
excelpython.org
Python for Excel - Best open-source Python libraries for working with Excel
409 Automate Excel with Python on Win & macOS. Works great for macros, UDFs, reporting, unit tests & REST API. ... 3 xlrd is a library for reading data and formatting information from Excel files, whether they are .xls or .xlsx files
🌐
Pandas
pandas.pydata.org › docs › reference › api › pandas.read_excel.html
pandas.read_excel — pandas 3.0.6 documentation - PyData |
Supports an option to read a single sheet or a list of sheets. ... Any valid string path is acceptable. The string could be a URL. Valid URL schemes include http, ftp, s3, and file. For file URLs, a host is expected. A local file could be: file://localhost/path/to/table.xlsx. If you want to pass in a path object, pandas accepts any os.PathLike. By file-like object, we refer to objects with a read() method, such as a file handle (e.g.
🌐
Hakibenita
hakibenita.com › fast-excel-python
Fastest Way to Read Excel in Python | Haki Benita
January 3, 2024 - Openpyxl is a library for reading and writing Excel files in Python. Unlike Tablib, Openpyxl is dedicated just to Excel and does not support any other file types. In fact, both tablib and pandas use Openpyxl under the hood when reading xlsx files.
🌐
LearnPython.com
learnpython.com › blog › python-package-for-excel
Best Python Packages for Excel | LearnPython.com
The pylightxl package is a lightweight, zero-dependency package that can read and write Excel files. The zero-dependency factor could be a compelling feature if you’re developing bigger projects, since this will avoid any compatibility issues ...
🌐
Iron Software
ironsoftware.com › ironxl for python › tutorials › python read excel file tutorial
Reading Excel Files in Python | IronXL for Python
May 8, 2026 - This guide provides Python developers with step-by-step instructions on utilizing the IronXL library to read and edit Microsoft Excel documents. IronXL is a comprehensive Excel file processing library that supports multiple programming languages, ...
🌐
Iron Software
ironsoftware.com › ironxl › ironxl blog › using ironxl › how to read an excel file in python
Read Excel Files in Python with VS Code (Beginner-Friendly Guide)
June 29, 2026 - First, set up a Python project and install IronXL via pip with the command pip install ironxl. Then, import the IronXL library in your Python script, load the workbook using WorkBook.Load(), access the worksheet, and iterate over the cells to ...
Top answer
1 of 13
113

I highly recommend xlrd for reading .xls files. But there are some limitations(refer to xlrd github page):

Warning

This library will no longer read anything other than .xls files. For alternatives that read newer file formats, please see http://www.python-excel.org/.

The following are also not supported but will safely and reliably be ignored:

- Charts, Macros, Pictures, any other embedded object, including embedded worksheets.
- VBA modules
- Formulas, but results of formula calculations are extracted.
- Comments
- Hyperlinks
- Autofilters, advanced filters, pivot tables, conditional formatting, data validation

Password-protected files are not supported and cannot be read by this library.

voyager mentioned the use of COM automation. Having done this myself a few years ago, be warned that doing this is a real PITA. The number of caveats is huge and the documentation is lacking and annoying. I ran into many weird bugs and gotchas, some of which took many hours to figure out.

UPDATE:

For newer .xlsx files, the recommended library for reading and writing appears to be openpyxl (thanks, Ikar Pohorský).

2 of 13
65

You can use pandas to do this, first install the required libraries:

$ pip install pandas openpyxl

See code below:

import pandas as pd

xls = pd.ExcelFile(r"yourfilename.xls") # use r before absolute file path 

sheetX = xls.parse(2) #2 is the sheet number+1 thus if the file has only 1 sheet write 0 in paranthesis

var1 = sheetX['ColumnName']

print(var1[1]) #1 is the row number...
🌐
Iron Software
ironsoftware.com › ironxl for python › ironxl for python blog › using ironxl for python › python read excel files
Python Read Excel Files (Developer Tutorial)
May 9, 2026 - IronXL for Python is designed to help developers read and write Excel files easily in Python. Not only can you write Excel files, but you can also work with multiple Excel sheets in a single go.
🌐
Python Basics
pythonbasics.org › home › pandas › read excel with python pandas
Read Excel with Python Pandas - pythonbasics.org
Creat an excel file with two sheets, sheet1 and sheet2. You can use any Excel supporting program like Microsoft Excel or Google Sheets. ... Pandas. .read_excel a.) uses a library called xlrd internally. xlrd is a library for reading (input) Excel files (.xlsx, .xls) in Python.