Understanding JSON ⇄ Excel
From a structured payload to a workbook.
Excel still owns the business handoff. This converter bridges your code's JSON to the file your colleagues open.
What an Excel file actually is.
A modern .xlsx is a ZIP archive containing XML files — Office Open XML, sometimes called OOXML. Inside: one document for the workbook structure, one per sheet for cell values, one for shared strings (Excel deduplicates repeated text). The converter writes those files for you and bundles them into a downloadable workbook.
The JSON shape that maps cleanly.
An array of flat objects, the same shape used by the JSON ⇄ CSV converter. Each object becomes a row; each unique key becomes a column header. Nested objects, nested arrays, and varying-shape objects don't have a clean spreadsheet equivalent — flatten them client-side or accept that the missing values become empty cells.
Type inference, both directions.
Going JSON → Excel: numbers become Excel numbers, booleans become TRUE/FALSE, ISO 8601 date strings stay as strings (Excel won't convert them automatically — let the spreadsheet user use Format Cells if they need a Date type). Going Excel → JSON: the converter reads each cell's underlying value, not the displayed text, so a date cell comes through as the underlying serial number unless the source spreadsheet stored it as a string.
Multi-sheet workbooks.
The converter reads the first sheet of any workbook on the way to JSON. If your source workbook has multiple sheets and you need all of them, save each sheet as its own file and convert separately, or send the workbook through a local script. Going JSON → Excel always emits a single-sheet workbook.
What survives a round-trip.
Cell values survive — that's it. Formulas, conditional formatting, charts, named ranges, frozen panes, sheet colours, comments, data validation — none of those map to JSON. Treat this converter as a way to move data between two formats; preserving spreadsheet presentation is a different problem with a different tool.