Excel Delta View
A fast, visual Excel file comparison tool for VS Code.
Pick two Excel workbooks, choose which sheets to compare, and get a clear diff in seconds — color-coded per-cell changes, row/column structure diffs, similarity scores, and a downloadable Excel report.
Features
- Three-phase workflow — Pick files → Select sheets → Review results; no config required
- Sheet-aware comparison — see which sheets are common, unique to File A, or unique to File B before running
- Cell-level diffs — every changed cell shows the old value (red) and new value (green) side by side
- Smart equality — configurable string comparison (trim-insensitive / trim-sensitive / exact), numeric tolerance, and correct handling of dates, booleans, and mixed types
- Similarity score — each compared sheet gets a % similarity badge (green ≥100%, orange ≥90%, red <90%)
- Column structure diffs — added and removed columns are called out separately from cell value changes
- Downloadable report — export a
.xlsx diff report with a Summary sheet and per-sheet Diff tabs
- Context menu shortcut — right-click any
.xlsx, .xlsm, or .xlsb in the Explorer to open it as File A
- VS Code theme aware — uses
var(--vscode-*) CSS variables; looks correct in any light or dark theme
Usage
From the Command Palette:
Ctrl+Shift+P → Excel Delta View: Compare Two Files
From the Explorer context menu:
Right-click any .xlsx, .xlsm, or .xlsb → Compare in Excel Delta View — the file is pre-loaded as File A; just pick File B to continue.
Settings
| Setting |
Default |
Description |
excelDeltaView.stringComparison |
trim-insensitive |
How string cells are compared: trim-insensitive, trim-sensitive, or exact |
excelDeltaView.numericTolerance |
1e-9 |
Maximum absolute difference between two numbers to be considered equal |
excelDeltaView.cellDiffCap |
5000 |
Max cell diffs stored per sheet (performance guard for very large files) |
Supported File Types
| Format |
Support |
.xlsx |
Full support via ExcelJS |
.xlsm |
Full support via ExcelJS (macros ignored) |
.xlsb |
Supported — see note below |
.xls |
Not supported (legacy binary format) |
A note on .xlsb files
ExcelJS does not support the binary workbook format. Excel Delta View bridges this by using SheetJS as a one-step conversion shim: when you open an .xlsb file, SheetJS reads it and produces an in-memory .xlsx buffer. ExcelJS then loads that buffer for comparison. Your original .xlsb file is never modified or written to disk.
SheetJS CE has two known security advisories (Prototype Pollution and ReDoS). Both require a specially crafted malicious file to trigger — meaning the risk is in the file itself, not the extension. If you're comparing files that came from a trusted source (your own workbooks, a colleague's export), there is nothing to worry about. If you work exclusively with .xlsx/.xlsm files, SheetJS is never invoked at all.
Coming Soon
- Worker thread file loading (removes the UI freeze risk on very large files)
- Cell color highlighting in the downloaded report (requires
xlsx-js-style)
- Row-level diff mode for detecting inserted / deleted rows vs. value-only changes
- Keyboard navigation within diff tables
- Pinning / bookmarking specific diff rows
Feedback & Issues
Found a bug or have a feature request? Open an issue at github.com/stoutalligator/excel-delta-view — contributions welcome.
MIT License