Skip to content

Free tools › Documents

XLSX to JSON

Sheets, cells, values, types, formulas and merged ranges — as a developer wants them.

More free conversions, where you upload. The Fylane extension does the same work inside any upload form, on its own free share every day.Add to Chrome

How to convert XLSX to JSON

  1. Drop the file.
  2. Nothing to choose.
  3. Press Convert and download.

What happens to your file

The workbook is read directly — it is XML in a zip — on Fylane’s servers: sheet names, each cell’s reference, value and type (number, string, boolean, error, empty), its formula where it has one, and the merged ranges. Dates come out as the serial numbers Excel stores, labelled as numbers: converting them needs the cell’s format, and a guessed date is worse than an honest serial.

Twenty sheets and five thousand rows a sheet at most; the report says when a sheet was cut.

Questions

Why are my dates numbers?

Excel stores a date as days since 1900. The number is exact; the format that shows it as a date is a display choice, so it is handed back as stored.

Can I feed it a CSV?

Not here — this reads XLSX, which is a zip of XML and carries types, formulas and merged ranges that a CSV has no way to express. Run CSV to Excel first if the source is a CSV, or use Excel to CSV if flat rows are all you need.

What shape is the JSON?

Structural rather than flattened: sheets, and within each sheet every cell with its reference, value and type — number, string, boolean, error or empty — plus its formula where it has one, and the merged ranges. That is more useful than an array of rows when you care about what the workbook actually says.

Why keep the formulas as well as the values?

Because a spreadsheet often encodes its logic in them, and a value alone loses why it is that value. Both are handed back so you can use either.

How do I turn the date serials into real dates?

Read the cell’s number format and apply it yourself. The serial counts days from 1900, with the well-known leap-year quirk, and libraries in every language convert it. A converter that guessed would be wrong often enough to matter, so it does not guess.

Is there a limit?

Twenty sheets, and five thousand rows per sheet. The report says plainly when a sheet was cut rather than silently truncating it.

Are empty cells included?

Yes, typed as empty, so a gap in the grid stays a gap rather than shifting the columns around it.

Do it once, not on every form

Fixing a file here means downloading it and going back to the form. The Fylane extension does this work inside the form instead, on the file you already have.

And it keeps the result. The next application that asks for a résumé, a cover letter and a photo fills all three from one tap, each one refitted to what that site accepts.

Your files stay in the browser, encrypted, on your machine. Nothing is uploaded to keep them and nothing is sent anywhere to fill a form.

Filmed from the extension: three upload fields on a job application, filled from one tap.

Add to Chrome — freeWhat it does

Do this in code

curl -X POST https://api.fylane.dev/v1/jobs \
  -H "Authorization: Bearer $FYLANE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_id": "<file id>",
    "operation": "sheet.parse",
    "options": {}
  }'

The same operation, sheet.parse — The workbook itself — or a CSV as a one-sheet one: sheets, values, types, formulas, merged ranges, as JSON or by `format` as XML; dates as the serials Excel stores. Upload first with the quickstart; every option is on the operations page. 500 free credits a month, then $5 per thousand.