JSON to CSV for spreadsheets
Convert a JSON array of objects into a CSV file for a spreadsheet app. Every key becomes a header column, cells that look like formulas are written as text, and the Download button saves the result as converted.csv. All conversion runs locally in your browser.
CONVERT
Accepts a JSON array of objects. Columns are the union of all keys. Nested objects and arrays are written as JSON text.
How it works
Each object becomes one row under a header row built from every key. Before a cell is written, the tool checks its first character: a value that starts with =, +, -, @, a tab, or a carriage return gets a leading single quote, so a spreadsheet treats it as text instead of running it as a formula. That includes negative numbers, so -5 is written as '-5. The Download button saves the result as converted.csv, UTF-8 text without a byte order mark.
Example
Cells that could run as spreadsheet formulas get a leading quote:
[{"item":"Tea","total":"=SUM(B2:B3)","change":-5}]item,total,change
Tea,'=SUM(B2:B3),'-5Processing runs in your browser
All conversion happens inside your browser tab using JavaScript. Our servers are not involved at any point.
Technical specification
CSV quoting follows the conventions in RFC 4180 (IETF, 2005): a field that contains a comma, a double quote, or a line break is wrapped in double quotes, and a double quote inside it is written twice.
- Standard
- RFC 4180. Common Format and MIME Type for Comma-Separated Values (CSV) Files
- Delimiter
- Comma only
- Output
- JSON array of objects, or CSV with LF line endings
- Download
converted.jsonorconverted.csv
Related operations
After converting, pretty-print or minify the JSON output. If your data starts as YAML, turn it into JSON first. To drop repeated lines from an export before converting, remove duplicate lines; the first occurrence of each line is kept, so the header row stays on top, and matching ignores letter case, so rows that differ only in case count as duplicates.
Frequently asked questions
- How are formula-like values written?
- Values that begin with =, +, -, @, a tab, or a carriage return get a leading single quote, so a spreadsheet treats them as text instead of evaluating them. A negative number such as -5 is written as '-5, so remove the quote after import if that column should stay numeric.
- Can the output open in spreadsheet apps?
- Most spreadsheet apps open it directly: the file uses comma delimiters, double-quote escaping, and a header row. Apps set to a semicolon list separator, common where decimals are written with a comma, may put everything in one column, so use the app's import dialog and choose comma. The file is UTF-8 without a byte order mark, so if accented letters look wrong, import it as UTF-8.
- What does the downloaded file contain?
- The Download button saves converted.csv: a header row, then one row per object, with rows separated by line feeds. Commas, double quotes, and line breaks inside a value are handled by wrapping the value in double quotes.
- Is my JSON data uploaded anywhere?
- All processing runs in JavaScript inside your browser tab. Our servers are not involved at any point.
Last reviewed September 30, 2026
Other pages for this tool
Related tools
- Background reading: Complete guide to data tools
- Step by step: Turn a CSV into clean JSON for an API