Discover the easiest way to compare two Excel documents using these code examples

Table of content

  1. Introduction
  2. Understanding the Importance of Comparing Excel Documents
  3. Preparing for Comparison
  4. Code Example 1: Using VBA Macro to Compare Two Excel Documents
  5. Code Example 2: Using Python Pandas Library to Compare Excel Documents
  6. Code Example 3: Using Excel Formula to Compare Two Excel Documents
  7. Conclusion
  8. Additional Resources


Python is a versatile programming language that can be used for a wide range of tasks, including data analysis and manipulation. In many cases, this involves working with Excel spreadsheets, which are a common format for storing and analyzing data. One common task that arises when working with Excel spreadsheets is the need to compare two different documents to identify differences or similarities between them. This can be a time-consuming and error-prone process, but Python provides an easy and efficient way to automate it.

In this article, we will explore some code examples that demonstrate the easiest way to compare two Excel documents using Python. Specifically, we will be using the openpyxl library, which is a Python library for working with Excel files. We will provide step-by-step instructions for downloading and installing openpyxl, as well as code examples that demonstrate how to load, compare, and analyze Excel spreadsheets. By the end of this article, you will have a clear understanding of how to use Python to compare Excel documents, and you will be equipped with the knowledge and tools to automate this task in your own projects.

Understanding the Importance of Comparing Excel Documents

Comparing Excel documents is an essential task for anyone who works with large amounts of data. Excel is a powerful tool for data analysis, but it can be difficult to keep track of the changes that occur over time. Inconsistencies in data can lead to errors, which can be costly and time-consuming to correct. This is why it's crucial to compare Excel documents regularly to ensure that the data is accurate and up-to-date.

Excel has a built-in comparison feature, but it can be time-consuming and cumbersome to use. Fortunately, Python offers a more efficient way to compare Excel documents. With Python, you can write code that compares two Excel files and highlights any differences between them. This code can be run automatically, allowing you to quickly and easily compare multiple Excel documents.

One of the main advantages of using Python to compare Excel documents is that it frees you from the limitations of Excel's built-in comparison feature. Python allows you to customize the comparison process to suit your specific needs, making it easier to work with large amounts of data. Additionally, Python's ability to automate the comparison process means that you can save time and increase productivity by eliminating the need for manual comparisons.

Overall, the ability to compare Excel documents is an essential task for anyone who works with data. By using Python to automate this process, you can save time and increase accuracy, making it an essential tool for anyone who wants to ensure the integrity of their data.

Preparing for Comparison

Before we dive into comparing two Excel documents, we need to prepare our environment to ensure a smooth process. First, we need to install the pandas library, which will be our main tool for data manipulation and comparison. We can easily install pandas by running pip install pandas in our command prompt or terminal.

Next, we need to make sure that the Excel documents we want to compare are in the same format, with the same column names and data types. This is important to ensure the comparison is accurate and meaningful. We can use the pandas read_excel() method to read in both Excel files and examine their structure using the head() and dtypes methods. We can also rename and reorder columns, as well as convert data types using pandas.

Another important step is to identify the key column or columns that will be used for comparison. These are the columns that contain unique identifiers for each row, such as a product ID or customer account number. We can use the set_index() method in pandas to set these columns as the index for each data frame, which will allow for easy comparison using the merge() method.

By taking these preparatory steps, we can ensure that our data frames are properly formatted and aligned for comparison, ultimately making the process much smoother and efficient.

Code Example 1: Using VBA Macro to Compare Two Excel Documents

For those who use Excel for managing data, comparing two Excel documents is a crucial task that can sometimes become cumbersome. Luckily, VBA macros can help simplify this process. Here is an example of a VBA macro code that can be used to compare two Excel documents:

Sub CompareExcelDocs()
Dim Doc1 As Workbook, Doc2 As Workbook
Dim Doc1Name As String, Doc2Name As String
Dim Cell1 As Range, Cell2 As Range
Dim Different As Boolean
' Open documents 
Doc1Name = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Select First Document")
Doc2Name = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "Select Second Document")
Set Doc1 = Workbooks.Open(Doc1Name)
Set Doc2 = Workbooks.Open(Doc2Name)
' Check cell-by-cell 
For Each Cell1 In Doc1.Worksheets(1).UsedRange
  Set Cell2 = Doc2.Worksheets(1).Cells(Cell1.Row, Cell1.Column)
  If Cell1.Value <> Cell2.Value Then
    Different = True
    ' Highlight differences 
    Cell1.Interior.Color = vbYellow
    Cell2.Interior.Color = vbYellow
  End If
' Notify user 
If Different = True Then
  MsgBox ("Documents have differences.")
  MsgBox ("Documents are identical.")
End If
' Close documents 
Doc1.Close SaveChanges:=False
Doc2.Close SaveChanges:=False
End Sub

This VBA macro code opens two Excel documents selected by the user, then checks the values in each cell of Worksheet 1 of the first document against the values in the corresponding cell of Worksheet 1 of the second document. If a difference is found, the macro highlights the cells with yellow color. Finally, the macro notifies the user if differences are found and closes the documents.

This VBA macro code provides a simple and effective way to compare two Excel documents. By highlighting differences in yellow color, the user can quickly identify the discrepancies between the documents. Moreover, the use of a message box to notify the user of the result adds an extra layer of convenience to the process.

Code Example 2: Using Python Pandas Library to Compare Excel Documents

Python Pandas Library is another powerful tool for comparing two Excel sheets. Pandas is a popular open-source library used for data analysis, manipulation, and visualization. It provides various functions to handle tables in a structured and organized manner. To use Pandas library, you need to install it from the command line or Anaconda prompt by running the following command:

pip install pandas

After installing Pandas library, you can use Pandas functions to read and compare data from Excel sheets. The comparison process in Pandas library involves loading Excel sheets into Pandas data frames, cleaning the data, and merging the two data frames.

To compare two Excel sheets using Pandas, follow these steps:

Step 1: Import Pandas library using the following code:

import pandas as pd

Step 2: Load the first Excel sheet into a Pandas data frame using the following code:

df1 = pd.read_excel('Sheet1.xlsx')

Step 3: Load the second Excel sheet into a separate Pandas data frame using the following code:

df2 = pd.read_excel('Sheet2.xlsx')

Step 4: Use the following code to merge the two data frames and compare them:

merged = pd.concat([df1, df2], axis=0, ignore_index=True)
changes = merged.drop_duplicates(keep=False)

In the above code, the Pandas concat function is used to merge the two data frames into a single data frame. The axis parameter is set to 0 to concatenate the data frames row-wise, and the ignore_index parameter is set to True to create a new index for the merged data frame. The merged data frame is then compared with the drop_duplicates() function to keep only the unique rows. The resulting changes data frame contains the rows that are different or have been deleted. Finally, the changes data frame is printed to the console.

Using Pandas library to compare Excel sheets is a quick and easy way to identify the differences between two data sets. Pandas provides various functions to manipulate and analyze data frames, making it a powerful tool for data analysis and visualization. With Pandas, you can quickly identify the differences between data sets and visualize them using graphs or charts.

Code Example 3: Using Excel Formula to Compare Two Excel Documents

One of the easiest ways to compare two Excel documents using Python is by using Excel formulas. Here's an example of how you can use Excel formulas to compare the contents of two Excel documents:

import openpyxl

# Load the two Excel documents
wb1 = openpyxl.load_workbook('document1.xlsx')
wb2 = openpyxl.load_workbook('document2.xlsx')

# Get the sheets from both documents
ws1 =
ws2 =

# Get the maximum number of rows and columns from both sheets
max_row1 = ws1.max_row
max_row2 = ws2.max_row
max_col1 = ws1.max_column
max_col2 = ws2.max_column

# Compare the contents of both sheets using Excel formulas
for row in range(1, max_row1 + 1):
    for col in range(1, max_col1 + 1):
        cell1 = ws1.cell(row=row, column=col)
        cell2 = ws2.cell(row=row, column=col)

        if cell1.value != cell2.value:
            formula = f'=IF(A{row}=B{row},"EQUAL","DIFFERENT")'
            ws1.cell(row=row, column=max_col1 + 1).value = formula

# Save the updated document'document1.xlsx')

In this example, we begin by loading the two Excel documents using the openpyxl library. We then get the active sheet from each document and determine the maximum number of rows and columns in both sheets.

Next, we loop through each cell in the first sheet and compare its value to the corresponding cell in the second sheet. If the values are different, we use an Excel formula to add a new cell in the first sheet that indicates whether the two cells are equal or different.

Finally, we save the updated first document back to disk.

Using Excel formulas to compare the contents of two Excel documents is an efficient and effective way to identify differences between them. It can also be easily customized to suit your specific needs.


In , comparing two Excel documents using Python can save you a tremendous amount of time and effort. With the code examples and guidelines outlined in this article, you now have a clear understanding of how to compare Excel documents using Python's pandas library. While there are many other Python libraries and functions available that can help you accomplish this task, pandas is the simplest and most user-friendly option. You can use these code examples as a starting point to develop your own solutions for comparing and analyzing large datasets. By mastering this technique, you'll be able to make better-informed decisions and improve the accuracy of your work.

Additional Resources

If you're looking to learn more about comparing two Excel documents using Python, there are several resources available online. Here are a few worth checking out:

  • The Pandas Library – This is a powerful library for data manipulation and analysis in Python. It includes tools for reading and writing Excel documents, and provides a range of functions for data comparison and analysis.
  • OpenPyXL – This library provides tools for working with Excel files in Python, including the ability to read and modify cell values, format cells, and add charts and images to spreadsheets.
  • PyXLL – This is a commercial Excel add-in that allows you to use Python functions directly in Excel. It provides a range of tools for working with Excel data in Python, including the ability to read, write, and compare Excel documents.

In addition to these libraries, there are also many tutorials and guides available online that can help you learn how to compare Excel documents using Python. A quick Google search will turn up a range of resources, including videos, blog posts, and forums where you can ask for help from other Python developers.

Throughout my career, I have held positions ranging from Associate Software Engineer to Principal Engineer and have excelled in high-pressure environments. My passion and enthusiasm for my work drive me to get things done efficiently and effectively. I have a balanced mindset towards software development and testing, with a focus on design and underlying technologies. My experience in software development spans all aspects, including requirements gathering, design, coding, testing, and infrastructure. I specialize in developing distributed systems, web services, high-volume web applications, and ensuring scalability and availability using Amazon Web Services (EC2, ELBs, autoscaling, SimpleDB, SNS, SQS). Currently, I am focused on honing my skills in algorithms, data structures, and fast prototyping to develop and implement proof of concepts. Additionally, I possess good knowledge of analytics and have experience in implementing SiteCatalyst. As an open-source contributor, I am dedicated to contributing to the community and staying up-to-date with the latest technologies and industry trends.
Posts created 1855

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top