Skip to main content
SheetTidy

Convert Excel to JSON

Turn any sheet into clean, pretty-printed JSON with one object per row, ready for an app, an API or a database.

  1. 1
  2. 2
  3. 3
  4. 4

Drop your Excel or CSV file here

XLSX, XLSM, XLS, ODS, CSV, TSV or JSON

Your file never leaves your device

How to use this tool

  1. Step 1: Open your spreadsheet

    Drop an .xlsx, .xlsm, .xls, .ods, .csv or .tsv file onto the tool. If the workbook has several sheets, pick the one to convert.

  2. Step 2: Check the header row

    The first row of the table becomes the property names. Look at the preview to make sure the columns are named the way your code expects.

  3. Step 3: Convert the file

    Click Convert file. The summary confirms how many rows and columns were turned into JSON objects.

  4. Step 4: Download the JSON

    Save the .json file, a UTF-8 text file indented with two spaces, and use it in your project.

Why turn a spreadsheet into JSON?

Spreadsheets are where people keep lists, but code prefers JSON. A product catalogue, a list of stores, a set of translations or a table of prices is often maintained in Excel by someone who is not a developer, and then needs to reach a website, an app or an API. JSON is the format all of those read natively.

JSON also carries more meaning than CSV. In a CSV every value is just text, and the program reading it must guess whether 42 is a number and whether “TRUE” is a yes. In JSON, numbers, true/false values, text and empty values each have their own type, and every value sits next to the name of its column. Nothing has to be guessed on the other side.

Converting Excel to JSON without a tool

Excel has no Save As › JSON option, so the usual routes all need some setup.

Power Query

Data › Get Data › From File › From JSON reads JSON into Excel, but Power Query only imports data. It cannot write a JSON file, so it does not help in this direction.

Office Scripts

In Excel for the web, with a Microsoft 365 business or education account, the Automate tab runs Office Scripts written in TypeScript. A short script can read the sheet with workbook.getActiveWorksheet().getUsedRange().getValues(), pair each row with the header row and pass the result to JSON.stringify. You then have to copy the output from the console, and dates arrive as Excel serial numbers such as 45366 unless you convert them yourself.

A VBA macro

On the Windows desktop app, a macro can loop over the cells and build the JSON text. VBA has no built-in JSON support, so you need to escape quotes, backslashes and line breaks by hand, decide how to write dates, and save the workbook as .xlsm to keep the macro.

Formulas

Some guides build each row with TEXTJOIN and string concatenation, then copy the column into a text file. It works for simple lists, but a single quote mark or line break inside a cell produces invalid JSON, and numbers formatted as text end up quoted.

Where this converter helps

Seeding a database or web app. Load starter data, such as a list of cities or product categories, straight from the sheet your team already maintains.

Sending data to an API. Many APIs accept an array of records in a request body. Convert the sheet and paste or post the result.

Content for static sites. Static site generators and front-end frameworks can import a JSON file at build time, so a catalogue or price list edited in Excel becomes site content without a database.

Settings and translations. Non-developers can edit labels, prices or text strings in a familiar spreadsheet, and developers receive a file they can commit.

Test data. Build realistic fixtures in a sheet, including empty cells and edge cases, and export them for automated tests.

Private data. Many online converters upload your file to a server. This one runs entirely in your browser, so customer lists and sales figures never leave your device.

How the conversion works

  • One object per row. The header row supplies the property names, and the order of the columns is kept.
  • Types are kept. Numbers stay numbers, TRUE and FALSE become true and false, and text stays text, so a code such as “000123” keeps its zeros.
  • Dates become text. Each date is written as “YYYY-MM-DD”, with the time when the cell has one.
  • Empty cells become null. Every object has the same keys, which makes the data easier to load into typed code or a database table.
  • Safe property names. Blank headers are named by column letter and repeated ones are numbered.
  • Readable output. The file is UTF-8, indented with two spaces and named after your original file, for example customers-sample-cleaned.json.

The preview shows the result as a table before you download, and the summary reads something like “Converted 5 rows and 6 columns from Excel (.xlsx) to JSON.”

Tips for clean output

Make sure the header row is the first row of the table. A title row or merged heading above it turns into a property name, so the Fix Excel columns tool is worth running first on reports exported from other systems. Short, consistent headers such as “email” or “joinedOn” are easier to use in code than long labels with spaces.

Blank rows at the end of a sheet become objects full of nulls. Remove them with the Remove blank rows tool before converting. To go back the other way, the JSON to Excel converter turns an array of records into a workbook.

Frequently asked questions

What shape is the JSON?

An array of objects, one object per row. Each object uses the header row for its property names, for example [{"Customer code": "000123", "Name": "Priya Shah"}]. This is the format most programs and APIs expect.

How are dates written?

As text in the form YYYY-MM-DD, such as "2024-03-15", or YYYY-MM-DD HH:MM:SS when the cell has a time. JSON has no date type, and this format is understood by every programming language.

What happens to empty cells?

They become null, so every object has the same set of properties. Your code can check for null instead of handling missing keys.

What if a column has no header or the same header twice?

A blank header is named after its column letter, such as "Column B", and a repeated header gets a number, such as "Name (2)". Every property name is unique, so no data is overwritten.

Will codes like 000123 keep their zeros?

Yes, as long as they are stored as text in the sheet. Text cells become JSON strings exactly as written, while real numbers become JSON numbers.

Can I convert every sheet at once?

No. The tool converts one sheet per file, which you choose when the workbook has several. Convert each sheet separately if you need them all.

All convert tools