---
title: "sheet_diff"
description: "Compares two versions of a workbook (`.xlsx`) and lists every change: cell values, formulas and styles, sheets added, removed or renamed, and rows or columns inserted or deleted."
---

| Tool | Kind | Purpose |
| :-- | :-- | :-- |
| `sheet_diff` | read | Compares two versions of a workbook (`.xlsx`) and lists every change: cell values, formulas and styles, sheets added, removed or renamed, and rows or columns inserted or deleted, each insertion or deletion as one structural change such as "3 rows inserted at 12" instead of every shifted cell. Pass `fileId`, `fromVersion` and optionally `toVersion` (default: the head); `file_history` lists the versions. Every changed sheet returns `ranges` covering all its changed cells, sometimes more: after rows or columns are inserted or deleted in any sheet, every sheet with formulas comes back whole (`A1:XFD1048576`), because its formulas may now point to other cells, and changes to named styles, conditional or table formats, the theme or workbook settings also return the whole sheet; a style change to a cell, row or column returns only its range; `details` give the before and after of the first changed cells, up to 16,000 characters, with `truncated: true` when more cells changed than `details` list. An insertion's `at` is a row or column of `toVersion`; a deletion's, of `fromVersion`. Rows or columns added after the last data count as cell changes. |
