xlLens manual

CLI and folder batches

Automate deterministic JSON or CSV comparisons with documented exit codes.

In short: Automate deterministic JSON or CSV comparisons with documented exit codes.

ValuesCalculatedFormulasStructureNamesCommentsVBAConnectionsFormattingProtection
xlLens
Search changesDifferences onlySave report
BasicSmartTable80 changes
PreviousBudget-2025.xlsx
ABCD
4Revenue475,000,000118.8%OK
5Operating profit118.8%=C5*1.08OK
6New customers531,360,000120.8%OK
7Repeat sales73.8=E7*1.0892.5
CurrentBudget-2026.xlsx
ABCD
4Revenue482,000,000118.8%OK
5Operating profit120.5%=C5*1.10OK
6New customers541,200,000120.8%OK
7Repeat sales73.75=E7*1.1092.50
Sheet 1 19Change detailsVBA 1
RevenueB4475,000,000482,000,000

10 change types in one workspace

Review multiple semantic changes side by side while preserving the visual structure of the desktop product.

xlLens
Search changesDifferences onlySave report
BasicSmartTable80 changes
Matched by key: 4 + Inserted row: 1
PreviousORD-101#101ORD-102#102ORD-103#103ORD-104#104
CurrentORD-101#101ORD-NEWInserted rowORD-102#102ORD-103#103ORD-104#104

Smart alignment

See inserted and removed rows realigned without a cascade of false changes.

xlLens
Search changesDifferences onlySave report
BasicSmartTable80 changes
Key column✓ SKUIDEmail
PreviousA-100Desk$180B-200Chair$80C-300Lamp$45
CurrentC-300Lamp$45B-200Chair$92A-100Desk$180

✓ B-200 · Matched by key · row 2 → 2

Key-based Table mode

Match reordered business records by SKU, ID, email, or another selected key.

Workbook comparison

Choose Basic, Smart, or Table mode from a terminal or automation script and save deterministic JSON or CSV output. Table mode requires one or more key columns.

  • --mode basic|smart|table
  • --key-columns ID,SKU
  • --format json|csv
  • 0: no differences · 1: differences found · 2: invalid input or comparison failure

Compare multiple Excel files at once

Pass two folders with --batch. Use --match filename to pair equal filenames across different folder locations, or --match path to require the same folder location and filename. xlLens never guesses when a filename has multiple candidates; provide explicit pairs with a --mapping JSON file.

  • xllens before after --batch --match filename --mode smart
  • pairs.json: {"pairs":[{"before":"A/report.xlsx","after":"B/report.xlsx"}]}
  • Add --mapping pairs.json for duplicate or renamed files

Try xlLens

SUPPORT

Need help?

Report a bug

Found a bug? Include the following details in your email.

  • Device and OS version
  • xlLens app version
  • Description of the issue
  • Screenshot or sample file, if possible