Excel/CSV to JSON

Import CSV text or XLSX: first row becomes JSON keys. Great for seeding APIs and databases from spreadsheets.

{{ excelToJson.xlsxFileName }}

{{ t("excelToJsonXlsxHint") }}

{{ excelToJson.message }}

Overview

Excel has existed since 1985 — it was born first on the Macintosh (yes, before existing on Windows) as the successor to Multiplan, which Microsoft sold in prior years. Over four decades, Excel has become the most widely used business application on the planet. There is a famous estimate that more than 750 million people actively use Excel, and that most of the world's GDP passes through a spreadsheet cell at some point. For developers, Excel is that tool that shows up in every corporate project: the client has data 'in Excel', the business team shares validation rules in a spreadsheet, the legacy system exports reports as XLSX. Knowing how to convert between Excel and JSON is an indispensable practical skill.

The need to convert spreadsheets to JSON appears in many scenarios: when you receive an initial dataset to seed a new application and the data is in a spreadsheet; when the content team manages data in Excel (products, categories, marketing copy) and you need to import it into an API or database; when a legacy system exports reports as XLSX and you need to process the data programmatically; or when you want to create test fixtures from real but anonymized data that lives in a spreadsheet. In all these cases, manual conversion would be tediously slow and prone to typos.

In XLSX mode, this tool reads the file entirely in the browser using SheetJS (xlsx.js), one of the most complete libraries for parsing Excel files in JavaScript. The first worksheet is read; the first row becomes the JSON object keys; each subsequent row becomes an object in the array. Cells with formulas return the calculated value (not the formula), and cells with dates are converted to ISO 8601 strings. Empty cells become empty strings. One important limitation: spreadsheets with multiple tabs, pivot tables, or complex formatting have only the first tab read; pivot tables specifically are not supported because they store grouping metadata, not raw data.

In CSV mode, the same logic as the CSV to JSON converter applies: comma as the default separator, first row as header, quoted fields supported. For very large files — spreadsheets with tens of thousands of rows — processing can be slow and memory-intensive in a browser tab. In those cases, prefer command-line tools like `csvkit` (Python) or pandas, which handle large files far more efficiently. This tool's output is designed for practical everyday use: reasonably sized data imports, test fixtures, and API prototyping.

Technical deep dive

Common questions summarized

  • What is this tool for?: It runs fully in your browser: useful to validate, format, or convert data in everyday development.
  • Are my inputs sent to a server?: Processing happens locally with JavaScript. We do not store what you paste into the text areas.
  • Can I use this for real production data?: Use at your own risk. For secrets (passwords, tokens), prefer controlled environments and your company policies. And always review the generated contents. Never trust blindly things you see on the internet.

Sample payload to try

  • See also the larger "Code Snippets" sample; paste this excerpt to try locally: CSV — sku,preco A1,19.90 B2,42.00

Code Snippets

Code example
sku,preco
A1,19.90
B2,42.00

CSV

sku,preco
A1,19.90
B2,42.00

FAQ

What is this tool for?

It runs fully in your browser: useful to validate, format, or convert data in everyday development.

Are my inputs sent to a server?

Processing happens locally with JavaScript. We do not store what you paste into the text areas.

Can I use this for real production data?

Use at your own risk. For secrets (passwords, tokens), prefer controlled environments and your company policies. And always review the generated contents. Never trust blindly things you see on the internet.