Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Excel Delta ViewNew to Visual Studio Code? Get it now.
Excel Delta View

Excel Delta View

stoutalligator

|
62 installs
| (0) | Free
Side-by-side Excel file comparison with sheet selection and downloadable diff report.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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 Excel report — export a .xlsx diff report with a Summary sheet and per-sheet Diff tabs
  • Downloadable HTML report — export a password-protected, self-contained .html file you can share via email or chat; opens in any browser with no server required
  • CSV support — compare .csv files the same way as Excel workbooks; each file is treated as a single-sheet workbook named after the file
  • Keyboard shortcut — Ctrl+Shift+D / Cmd+Shift+D opens the panel from anywhere; an icon button also appears in the editor title bar when an Excel or CSV file is active
  • Header row control — toggle whether the first row is treated as column headers per comparison; affects column names in diffs and the key-column feature
  • Key-column matching — specify one or more column names (e.g. CustomerID or CustomerID, OrderDate) to match rows by value instead of position; rows with no match in the other file are reported separately as "Only in A / Only in B"
  • Select All / None — toggle all sheet checkboxes at once in the sheet selection phase
  • Re-run — repeat the last comparison (same files, same sheets) directly from the results view without navigating back
  • Sheet filter — live-filter the results cards by sheet name when comparing many sheets
  • Context menu shortcut — right-click any .xlsx, .xlsm, .xlsb, or .csv 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

Opening the extension

From the Command Palette: Ctrl+Shift+P → Excel Delta View: Compare Two Files

Keyboard shortcut: Ctrl+Shift+D (Windows/Linux) or Cmd+Shift+D (Mac)

From the editor title bar: When an Excel or CSV file is the active editor, a compare icon (⇄) appears in the title bar — click it to open the panel with that file pre-loaded as File A.

From the Explorer context menu: Right-click any .xlsx, .xlsm, .xlsb, or .csv → Compare in Excel Delta View — the file is pre-loaded as File A; just pick File B to continue.


Step-by-step walkthrough

The extension works in three phases:

Phase 1 — Pick files

The panel opens with two file slots. Click Browse… under File A and File B to select your workbooks. You can also pre-load File A by right-clicking it in the Explorer before opening the panel. Once both files are loaded the extension automatically moves to Phase 2.

Phase 2 — Select sheets

You'll see three groups:

  • Common sheets — sheets that exist in both files. All are checked by default; uncheck any you want to skip. Use the All / None buttons next to the header to toggle all checkboxes at once.
  • Only in A / Only in B — sheets unique to one file. These are listed for reference but cannot be compared.

Comparison options (above the sheet list):

  • First row is header — when checked (default), the first row of each sheet is treated as column headers. Uncheck this for sheets where row 1 is data.
  • Key column(s) — enter one or more column names, comma-separated (e.g. OrderID or CustomerID, OrderDate). When set, rows are matched by their key values instead of their position in the file. Rows present in one file but not the other are shown in an "Only in A / Only in B" section. Leave blank for position-based comparison (the default). Requires First row is header to be enabled.

Click Run Comparison (N sheets) when ready. Use ← Change Files to go back and swap a file.

Phase 3 — Review results

A summary banner shows the total number of sheets compared, total cell diffs, and how many sheets are clean. Below it, each compared sheet appears as a collapsible card:

  • Click a card header to expand or collapse it.
  • The similarity badge (green / yellow / red) is shown next to the sheet name.
  • Expanded cards show row counts, any added/removed columns, and a diff table.
  • The diff table groups changes by row — each changed row appears as a paired A row (red, old values) and B row (green, new values). Only the changed cells are highlighted; surrounding cells appear dimmed for context.
  • If a sheet has many diffs, the table shows the first 50 rows. Click Load more to load the next 200.
  • When key-column matching is used, an Only in A / Only in B section appears below the diff table listing any rows that had no matching key in the other file.

Use ← Change Sheets in the footer to go back and re-select sheets without reloading the files. Use Re-run to repeat the last comparison with the same files and sheet selections. Use the Filter sheets… input to narrow the visible cards by sheet name when the results list is long.


Exporting Reports

Both report buttons appear in the sticky footer once a comparison has been run.

Excel Report (.xlsx)

Click Download Excel Report, choose a save location, and the file opens automatically. It contains:

  • A Summary sheet with one row per compared sheet — row counts, column diffs, cell diff count, and similarity %.
  • One diff sheet per compared sheet that has diffs, showing paired A/B rows for every changed row (same layout as the in-panel view).

HTML Report (.html)

Click Download HTML Report and choose a save location. The file is saved and a VS Code notification appears showing the auto-generated password:

HTML report saved. Password: XXXX-XXXX-XXXX-XXXX-XXXX

Click Copy Password in the notification to copy it to your clipboard, then share the .html file and the password separately (e.g. send the file by email, share the password by Slack).

Opening the report in a browser:

  1. Open the saved .html file in any modern browser (Chrome, Edge, Firefox, Safari).
  2. Enter the password on the lock screen and click Unlock Report (or press Enter).
  3. The report renders with a tab bar at the top — one tab per compared sheet, plus a Summary tab.

Summary tab — mirrors the Excel Summary sheet: a table of all compared sheets with row counts, column diffs, cell diffs, and similarity %. Sheets that only exist in one file are listed at the bottom with a note.

Sheet tabs — each tab shows the same paired A/B row layout as the Excel diff sheets. A red dot ● on the tab means the sheet has diffs; a green dot means it's clean. Column headers and the marker column stay fixed as you scroll wide or tall tables.

The HTML file is fully self-contained — no internet connection, no server, and no external scripts. The diff data is encrypted with AES-256-GCM using a PBKDF2-derived key; the password never leaves your machine.

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)
excelDeltaView.firstRowIsHeader true Default state of the "First row is header" checkbox. Can be overridden per comparison in the UI.
excelDeltaView.keyColumns [] Default key column(s) for row matching. Can be overridden per comparison in the UI.

Supported File Types

Format Support
.xlsx Full support via ExcelJS
.xlsm Full support via ExcelJS (macros ignored)
.xlsb Supported — see note below
.csv Supported — treated as a single-sheet workbook; see note below
.xls Not supported (legacy binary format)

A note on .xlsb and .csv files

ExcelJS does not support the binary workbook format or CSV files directly. Excel Delta View bridges this by using SheetJS as a one-step conversion shim: when you open an .xlsb or .csv file, SheetJS reads it and produces an in-memory .xlsx buffer. ExcelJS then loads that buffer for comparison. Your original file is never modified or written to disk.

For CSV files, the single sheet is named after the filename (e.g. sales_q1.csv → sheet name sales_q1), so comparing two CSVs produces a clean one-sheet result.

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

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft