Search DevTools

Jump to any tool or page

Sheet to JSON Converter

Convert an Excel (.xlsx, .xls) or CSV file to JSON instantly.

Input

Output

Upload and convert a file to see the JSON here.

Data Transformation

About Sheet to JSON

Convert an Excel workbook or CSV into a JSON array, with each row becoming an object keyed by header. The awkward part of spreadsheet conversion is never the parsing — it is that Excel stores dates as serial numbers, drops leading zeros from anything that looks numeric, and switches to scientific notation for long digit strings, all before your file reaches any converter.

Frequently asked questions

Why do dates come out as five-digit numbers?
Excel stores dates as a serial offset from an epoch, with 1 representing 1 January 1900, so 45000 is a date rather than a quantity. What you see in the grid is a display format, not the stored value. Converters that read the underlying cell therefore surface the serial. There is also a deliberate bug worth knowing: Excel treats 1900 as a leap year for backward compatibility with Lotus 1-2-3, so serials before 1 March 1900 are off by one day.
Where did the leading zeros in my ID column go?
Excel coerces anything that looks numeric to a number on entry, and numbers have no leading zeros, so 00123 becomes 123 and a postcode like 01234 loses its first digit. This happens at input time, inside the file itself — no converter can recover the lost characters afterwards. The same coercion turns long identifiers into scientific notation, so a 16-digit reference is stored as 1.23457E+15 and the trailing digits are gone for good. Format the column as text before entering data.
How are merged cells and multi-row headers handled?
A merged range stores its value only in the top-left cell; every other cell in the range is genuinely empty. Converted output therefore shows one populated row followed by nulls, which is rarely what the spreadsheet visually implied. Multi-row headers are worse, because JSON keys are flat — a two-tier header of Q1/Q2 above Revenue/Cost has no single-line equivalent. Flatten headers into one row of unique names before converting, or you will get duplicate keys that silently overwrite each other.
What happens with formulas, and do I get values or expressions?
Workbooks store both the formula and its last cached result. Conversion normally reads the cached value, which means a file whose formulas have not been recalculated since its inputs changed yields stale numbers, and one generated by a library that never computed results at all yields nulls. Errors are cached too, so a cell containing an unresolved reference converts to the literal string #REF! rather than a null. Worth scanning for those before trusting the output.
Why does my CSV show strange characters like é or a leading ?
Both are encoding artefacts. é is UTF-8 bytes being interpreted as Latin-1, which happens when the file was saved without an encoding declaration and the reader guessed wrong. The  prefix is a UTF-8 byte order mark that Excel writes by default; readers that do not strip it fold it into the first header name, so your first JSON key becomes an invisible mismatch that breaks every lookup against it. Saving explicitly as UTF-8 without BOM avoids both.