sheets-diff 2.5.0

Structured diff engine for Microsoft Excel .xlsx workbooks
Documentation
{
  "old": {
    "source": {
      "kind": "Bytes",
      "display_name": null
    },
    "workbook_name": null,
    "sheet_count": 2
  },
  "new": {
    "source": {
      "kind": "Bytes",
      "display_name": null
    },
    "workbook_name": null,
    "sheet_count": 2
  },
  "sheets": [
    {
      "old_sheet": {
        "name": "Sheet1",
        "index": 0
      },
      "new_sheet": {
        "name": "Sheet1",
        "index": 0
      },
      "change": "Modified",
      "cell_diffs": [
        {
          "address": {
            "row": 4,
            "col": 1,
            "a1": "A4"
          },
          "value": {
            "old": {
              "Text": "before"
            },
            "new": {
              "Text": "after"
            },
            "reason": "ContentChanged"
          },
          "formula": null,
          "format": null,
          "diagnostics": []
        }
      ],
      "compared_range": {
        "start": [
          1,
          1
        ],
        "end": [
          4,
          1
        ]
      },
      "alignment_summary": null,
      "diagnostics": [
        {
          "severity": "Info",
          "kind": "FormulaUnavailable",
          "location": {
            "stage": "Read",
            "sheet_order": 0,
            "sheet_name": "Sheet1",
            "address": {
              "row": 1,
              "col": 1,
              "a1": "A1"
            }
          },
          "message": "formula text unavailable for numeric cell at A1"
        },
        {
          "severity": "Info",
          "kind": "FormulaUnavailable",
          "location": {
            "stage": "Read",
            "sheet_order": 0,
            "sheet_name": "Sheet1",
            "address": {
              "row": 2,
              "col": 1,
              "a1": "A2"
            }
          },
          "message": "formula text unavailable for numeric cell at A2"
        },
        {
          "severity": "Info",
          "kind": "FormulaUnavailable",
          "location": {
            "stage": "Read",
            "sheet_order": 0,
            "sheet_name": "Sheet1",
            "address": {
              "row": 1,
              "col": 1,
              "a1": "A1"
            }
          },
          "message": "formula text unavailable for numeric cell at A1"
        },
        {
          "severity": "Info",
          "kind": "FormulaUnavailable",
          "location": {
            "stage": "Read",
            "sheet_order": 0,
            "sheet_name": "Sheet1",
            "address": {
              "row": 2,
              "col": 1,
              "a1": "A2"
            }
          },
          "message": "formula text unavailable for numeric cell at A2"
        }
      ],
      "summary": {
        "cells_changed": 1,
        "values_changed": 1,
        "formulas_changed": 0
      }
    },
    {
      "old_sheet": {
        "name": "Chart1",
        "index": 1
      },
      "new_sheet": {
        "name": "Chart1",
        "index": 1
      },
      "change": "Unchanged",
      "cell_diffs": [],
      "compared_range": {
        "start": null,
        "end": null
      },
      "alignment_summary": null,
      "diagnostics": [],
      "summary": {
        "cells_changed": 0,
        "values_changed": 0,
        "formulas_changed": 0
      }
    }
  ],
  "workbook_changes": [],
  "object_changes": [],
  "diagnostics": [
    {
      "severity": "Warning",
      "kind": {
        "UnsupportedWorkbookFeature": {
          "feature": "chart sheet"
        }
      },
      "location": {
        "stage": "Metadata",
        "sheet_order": 1,
        "sheet_name": "Chart1",
        "address": null
      },
      "message": "sheet 'Chart1' is a chart sheet — content not compared (calamine 0.36 does not expose chart sheet data)"
    },
    {
      "severity": "Warning",
      "kind": {
        "UnsupportedWorkbookFeature": {
          "feature": "chart sheet"
        }
      },
      "location": {
        "stage": "Metadata",
        "sheet_order": 1,
        "sheet_name": "Chart1",
        "address": null
      },
      "message": "sheet 'Chart1' is a chart sheet — content not compared (calamine 0.36 does not expose chart sheet data)"
    },
    {
      "severity": "Info",
      "kind": {
        "UnsupportedWorkbookFeature": {
          "feature": "non-cell objects"
        }
      },
      "location": {
        "stage": "Metadata",
        "sheet_order": null,
        "sheet_name": null,
        "address": null
      },
      "message": "not compared: charts, images, comments, data validation, and conditional formatting (unavailable in calamine 0.36's API); hyperlinks, merged regions, tables, and pivot tables (available upstream, not yet used by this crate)"
    }
  ],
  "summary": {
    "sheets_added": 0,
    "sheets_removed": 0,
    "sheets_renamed": 0,
    "sheets_moved": 0,
    "sheets_changed": 1,
    "cells_changed": 1,
    "values_changed": 1,
    "formulas_changed": 0,
    "diagnostics": {
      "errors": 0,
      "warnings": 2,
      "info": 1
    }
  },
  "metrics": {
    "sheets_read": 2,
    "cells_read": 8,
    "cells_compared": 3,
    "diffs_emitted": 1,
    "diagnostics_emitted": 7
  }
}