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 changes✓ Differences 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 changes✓ Differences 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 changes✓ Differences 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