What’s Inside xlCompare?
xlCompare is written in C++ to deliver maximum performance when working with large datasets. It does not rely on third-party components that require separate licensing.
Spreadsheet Core Engine
The application operates independently of Microsoft Excel and uses its own Spreadsheet Core engine to load and process Excel files, recalculate formulas, and execute VBA macros.
This architecture gives xlCompare complete control over spreadsheet processing and is designed to provide fast, stable, and efficient performance even when working with large and complex Excel files.
The Spreadsheet Core engine used by xlCompare can recalculate spreadsheets up to 10 times faster than Microsoft Excel.
This performance advantage allows xlCompare to efficiently compare large Excel workbooks containing thousands of formulas.
Data Representation
Spreadsheet Core uses a compact, packed data representation to store spreadsheet data in memory. This significantly reduces memory consumption, allowing xlCompare to process large spreadsheets more efficiently.
To accelerate the loading of large XLSX and CSV files, xlCompare uses optimized, low-level code that reads data from disk in large blocks using a streaming approach.
This enables xlCompare to load large Excel and CSV files containing 500,000 or more rows in just seconds.
XML Parser
xlCompare uses its own high-performance, low-level XML parser to efficiently extract and load XLSX files without relying on the traditional DOM model.
This approach significantly improves loading speed and reduces memory consumption, especially when working with large XLSX files.
Comparison Algorithms used by xlCompare
To compare spreadsheets, xlCompare uses two algorithms: a key-based row alignment algorithm and a secondary algorithm based on a modified version of the Levenshtein algorithm.
These algorithms form the foundation of the comparison strategies available in the File Comparison Wizard.
Both algorithms are highly optimized to deliver maximum comparison speed while minimizing CPU and memory usage.