Excel to JSON and JSON to Excel

Convert Excel or CSV to JSON and JSON to Excel or CSV, privately in your browser

Your files are processed in your browser. They are never uploaded, and nothing is stored after you close the page. How we handle privacy

Select the cells in Excel or Google Sheets, copy, and paste here. Tabs, commas and semicolons all work.

Runs entirely in your browser. Nothing you type or upload is sent to us or stored.

Results are for general guidance. Please check anything important before relying on it. Terms of use

How to Use

  1. Choose Excel / CSV to JSON or JSON to Excel / CSV at the top.
  2. To make JSON, drop an .xlsx, .csv or .tsv file in the box, or copy cells in Excel or Google Sheets and paste them in the box below it (try a sample shows how it works). Pick the sheet if the workbook has more than one.
  3. Set the options: whether the first row has the column names, trimming spaces, turning number text into numbers, skipping empty rows, and array of objects or array of arrays. Check the preview of the first 50 rows.
  4. Use copy or download .json to take the result.
  5. To make a spreadsheet, paste a JSON array (or open a .json file), check the preview and click Download .xlsx, .csv or copy CSV.

Convert Excel to JSON and JSON to Excel in your browser

Developers, analysts and anyone who works with an API keep running into the same chore: a client sends an Excel sheet and the app needs JSON, or an API returns JSON and the accounts team wants it in Excel. This Excel to JSON converter does both directions. Your file is read by your own browser and never uploaded, so it is safe for customer lists, GST data or salary sheets.

Excel or CSV to JSON

Each row of the sheet becomes one item in a JSON array. With "First row has the column names" on, the headings become the keys:

name, city, pin
Asha Patel, Ahmedabad, 380015
  โ†“
[{ "name": "Asha Patel", "city": "Ahmedabad", "pin": 380015 }]

Choose "Array of arrays" if you want plain rows instead, for example to feed a charting library. Blank headings become column_1, column_2 and so on, and repeated headings get _2, _3 added so no data is lost.

A few details are handled the way most people expect:

  • Numbers: text such as "42" or "3.75" becomes a number. Values with leading zeros ("007", "0612") and anything longer than 15 digits (such as 16-digit card numbers) stay as text, because JavaScript numbers can't hold more than about 15 digits exactly. Turn the option off if mobile numbers or IDs should stay as text too.
  • Dates in Excel cells become "2026-10-17", or "2026-10-17T09:30:00" when they include a time.
  • Formulas give their last calculated value, and hyperlinks give their text.
  • Empty cells become null, and fully empty rows are skipped unless you turn that off.
  • CSV files may use commas, semicolons, tabs or pipes; the tool detects which. Values in double quotes can hold commas, quotes ("") and line breaks.

JSON to Excel or CSV

Paste an array of objects and every key becomes a column, in the order it first appears. Objects that miss a key get an empty cell. Nested objects and arrays are written as JSON text in a single cell, so nothing is silently dropped. The tool also accepts an array of arrays (no header row), a single object, and the common API shape {"data": [...]}.

DownloadBest forNotes
.xlsxExcel, Google Sheets, sharingBold header row, frozen at the top; numbers stay numbers
.csvImports into accounting software, databases and other appsUTF-8 with a BOM so Excel shows โ‚น and Indian languages correctly

Limits and tips

  • Old .xls files can't be read. Open them in Excel or Google Sheets and save as .xlsx or CSV first.
  • Password-protected workbooks need the password removed first.
  • The first 1,00,000 rows of a sheet are read. Very large files can take a few seconds on a phone.
  • Excel allows at most 32,767 characters in one cell. Longer values are cut in the .xlsx download but kept whole in the CSV.
  • Check the preview before you download: codes with leading zeros should still show them.

Frequently Asked Questions

No. The file is read by your browser on your own device, and the JSON or Excel file is created there too. Nothing is sent to a server.

Yes. After you open the workbook, pick the sheet from the Sheet list. Each sheet is converted separately and the download is named after it.

Because they would change if turned into numbers. Values with leading zeros (such as 007 or 0612) and values longer than 15 digits (such as 16-digit card numbers) stay as text so they come out exactly as typed. Turn off "Turn number text into numbers" to keep every value, including mobile numbers, as text.

As JSON text in one cell. For example, an address object becomes {"city":"Pune"} in the address column, so you can still read or split it later.

No, only .xlsx, .csv and .tsv. Open the .xls file in Excel or Google Sheets and save it as .xlsx or CSV, then drop it here.