Row Alignment Explanation

Checking Use Alignment Plus on DiffEngineX's main user-interface changes from one row/column alignment algorithm to another.

When Align Rows is selected, blank rows are inserted into copies of your Excel spreadsheets in order to align similar rows. When the similarities are paired off with the same row numbers, the minimum number of differences can then be reported. If you have imported database rows in Excel, make sure you use Excel to sort the worksheets first (then Save them from the File menu) before using DiffEngineX to compare them. This is because DiffEngineX will not re-order rows in order to match them up.

What is the difference between the two different row alignment algorithms?

before_a.xlsx and before_b.xlsx show two sheets before row alignment. We can see both contain "Bob" and "Stuart" rows. The row in between them differs.

Use Alignment Plus Is Unchecked

rowalign_a.xlsx and rowalign_b.xlsx show the results of row alignment when Use Alignment Plus is unchecked. DiffEngineX has inserted a blank, yellow row in order to align the "Bob" and "Stuart" rows. The two different rows ("Robin" and "Peter") both end up in row 3 and have been colored because they are different. DiffEngineX has done its job: it has aligned similarities and reported the minimum number of differences.

Use Alignment Plus Is Checked

For those interested in database data, there is the desire that unmatched rows ("Robin" and "Peter") don't end up with the same rows numbers i.e. "Robin" is paired against a blank row in the sheet it is compared against and vice-versa for "Peter". Checking Use Alignment Plus ensures these results are obtained. We can see "Robin" is colored red for a deleted row and "Peter" is colored green for a newly added row in rowalign_plus_a.xlsx and rowalign_plus_b.xlsx.

To summarize, Align Rows aligns similar rows. When Use Alignment Plus is checked, unmatched rows are explicitly paired with blank rows.

Excel Add-Ins Must Be Converted To Workbooks Before Comparison

Excel add-ins (.xla and .xlam) must first be converted to workbooks (.xls and .xlsm) before using DiffEngineX to compare them. The steps to achieve this are described below.

  1. Use File->Open to open the file in Excel.
  2. Click the Developer tab and then the Visual Basic button. (Excel 2003: Tools->Macro->Visual Basic Editor.)
  3. In the Project Explorer window in the Visual Basic Editor, you will see an entry similar to VBAProjectName(Add-in file name *.xla). Click the plus sign to the left of this. You may need to enter a password at this point.
  4. Expand Microsoft Excel Objects and click ThisWorkbook.
  5. From the Tools menu select VBAProjectProperties... .
  6. Select the Protection tab. Uncheck "Lock project for viewing". Clear both the password and confirm password boxes.
  7. In the Properties window change the value of IsAddin from True to False. (Make sure ThisWorkbook is selected in the Project Explorer.)
  8. Select "Close and Return to Microsoft Excel" from the File menu.
  9. For Excel 2007 and later select File->Save As and then select Excel Macro-Enabled Workbook (*.xlsm). For Excel 2003, select File->Save As and then Microsoft Office Excel Workbook (*.xls).

Once your Excel add-ins (*.xla and *.xlam) are converted to Excel workbooks (*.xlsm or for Excel 2003 *.xls), you can use DiffEngineX to compare them. Click here for instructions on how to do this.

DiffEngineX - The Excel Workbook Compare Software

Free 30-Day Trial Software Download

A free 30 day trial of our software to find the differences between Excel spreadsheets is available.

About DiffEngineX's Unique Advantages

DiffEngineX is one of the few Excel workbook compare utilities that generates its reports as Excel workbooks & it is FAST! DiffEngineX generates three workbooks. Two are color highlighted copies of your original spreadsheets - color is used to mark the differences. The third is a cell-by-cell listing of all the differences. Optionally each difference listed in the difference report can be hyperlinked to both the original and colored workbooks. Functionality on the Extras dialog box allows matching rows to be hidden. This allows you to immediately see the differences on the color highlighted workbook copies. With Excel's built-in functionality to allow you to view the two copies side-by-side, you can easily see all the differences in their original format.

Other compare utilities generate their reports in a Windows user interface control. With a large number of differences, performance can be sluggish. Having reports in Excel workbook format is a huge advantage.

Although there are a large number of Excel compare utilities, they mainly only compare the spreadsheet cells. DiffEngineX will also compare the Excel comments, defined names (named ranges) and VBA (Visual Basic for Applications) macros.

Unlike the majority of Excel compare tools, DiffEngineX will ignore numeric differences below a specified threshold. If you are comparing two financial models, you may not want to have reported all the tiny, insignificant differences. DiffEngineX can round numbers up to a certain number of decimal places before comparison or ignore differences below a certain value or percentage.

To date DiffEngineX is the only Excel compare utility we have seen that can optionally highlight Excel differences at the character level. You have the choice between seeing character level differences on either automatically made copies of your workbooks (Main User Interface->Highlight Character Level Differences) or on the difference report (Options->Color in red...).

Spreadsheets used for financial modelling often have large blocks of equivalent formulae. If the block's formula changes, the difference report can end up reporting the same difference tens to hundreds of times. DiffEngineX has the option to group adjacent like changes together and to report the change to a range of cells.

Obviously DiffEngineX allows you to choose whether you compare workbook formulae or their calculated values. White space and the differences between upper and lower-case letters can be optionally ignored.

By default, hidden cells and filtered rows are made visible in the workbook copies before a comparison takes place.

The Extras dialog allows you to choose what colors are used to highlight cell differences and to optionally remove existing workbook color allowing the differences to be clearly shown.

Your original spreadsheets are left unaltered by DiffEngineX as any modifications are always made to automatically made workbook copies.

DiffEngineX has a large number of users and is a fast, scalable and reliable software application.

The Genesis Of DiffEngineX

If you cast your mind back at least six years ago, there were only a small handful of software utilities to compare Excel workbooks. Typically even for average sized workbooks they took at least ten minutes. Worse than that some of them even failed to spot all the differences. All these Excel compare utilities were written as Excel add-ins, meaning they ran inside Microsoft Excel and were invoked from its menu system.

We did not want to do the exact same thing again. We decided to write DiffEngineX as an desktop application running outside of Microsoft Excel. This way it would be a little easier to invoke it from the command line with arguments or from source control systems.

With the benefit of time, we realized an almost arbitrary decision was fortuitous. When Microsoft released new versions of their runtimes and libraries, Excel add-ins broke. When Microsoft released 64-bit operating systems, Excel add-ins broke. DiffEngineX runs outside Excel and it kept on working despite all Microsoft's changes. DiffEngineX has been the compare utility that people turn to when everything else fails to work.

DiffEngineX was one of the first Excel compare utilities to report all the differences between two medium sized Excel workbooks within tens of seconds rather than tens of minutes.

The early versions of DiffEngineX were only intended as a minimal implementation of the classic diff algorithm i.e. software to point out the similarities between two sequences of information. Over time with customer feedback DiffEngineX has grown into the application it is today.

Academic Articles Referencing DiffEngineX

We have found several academic articles referencing DiffEngineX.

DiffEngineX is a true difference tool for Excel workbooks, which correctly handles row/column insertions and deletions and their effects on formulae. It offers two different row alignment algorithms. Use Alignment Plus not only aligns similar rows, but makes sure unmatched rows are always paired with a blank row (in the other workbook) such that deletions and additions can be easily color highlighted and inspected. "Options->Hide Matching Rows, but show 4 rows on either side as context" is a powerful way to see all the differences at once with a little context on either side. DiffEngineX remains unique in its scalability.

Harutyunyan, Anna, et al. "Planted-model evaluation of algorithms for identifying differences between spreadsheets."


Doctoral dissertation, University of Otago 2010.

Chambers, Chris, Martin Erwig, and Markus Luckey. "SheetDiff: A tool for identifying changes in spreadsheets." IEEE Int. Symp. on Visual Languages and Human-Centric Computing. 2010.

Comparing Excel Workbooks With Event Handlers

Version 2.28 of DiffEngineX has improved handling when comparing Excel workbooks containing event handlers such as Workbook_Open and Workbook_BeforeClose. If your Excel spreadsheets make substantial use of VBA macros we recommend you upgrade to this version.

(DiffEngineX automatically creates temporary workbook copies before the process of reporting and highlighting differences, so your original files are untouched.) A new option has been added to the Extras dialog allowing the user to make hidden workbooks visible.