How to use it
- Choose or drop an .xlsx file.
- Pick a sheet, or All sheets for an object keyed by sheet name.
- Choose objects or arrays, pretty or minified.
- Copy the JSON or download it.
How it works
With Objects, the first non-empty row supplies the keys and every following row becomes an object. Empty header cells become column_1, column_2 … and repeated names get a suffix (id, id_2) so no value is lost. With Arrays, every row becomes an array, padded with null to the same length.
Numbers and booleans keep their JSON types, empty cells are null and dates are ISO 8601 strings (2024-01-15, with the time when there is one). Formulas give the result saved in the file. Number formats are not applied, so 25 % is 0.25. Rich text becomes plain text, hyperlinks their visible text, and error values a string such as #N/A. Completely empty rows are skipped; in merged areas only the top-left cell has the value.
All sheets produces one object whose keys are the sheet names. Very hidden sheets are skipped.
Examples
Seeding a database
A sheet with columns id, name and price becomes [{"id": 1, "name": "Pen", "price": 2.5}, …], ready for an import script.
Translations kept in Excel
A sheet with key, en and tr columns turns into objects you can reshape into language files with a few lines of code.
Frequently asked questions
How are dates written?
As ISO 8601 strings: 2024-01-15 for dates and 2024-01-15T09:30:00Z for date-times. Excel stores dates without a time zone, so the time is written as UTC without conversion.
What happens to empty cells?
They become null, so every object has the same keys. Rows where every cell is empty are skipped.
Why is a percentage 0.25 instead of 25 %?
JSON receives the stored value, not the displayed format. Multiply by 100 in your code if you need the percentage.
Privacy
The workbook is read in your browser and the JSON is created on your device. Nothing is uploaded, stored or included in analytics; only an anonymous event that the tool was used is counted.