What is JSON ⇄ CSV ⇄ Excel conversion?
Development, data analysis and spreadsheets constantly need format swaps: code emits JSON, a colleague wants Excel, an import tool expects CSV. This tool converts tabular data between all three, entirely in your browser with no upload — safe even for data with personal information.
How to use
- Paste JSON or CSV into the input box, or upload a .json / .csv / .xlsx file.
- Click To JSON, To CSV or To Excel.
- JSON/CSV results can be copied or downloaded; Excel downloads an .xlsx directly.
Common use cases
- Hand a JSON API response to a colleague who only uses Excel.
- Turn a spreadsheet CSV export into JSON your code can parse.
- Package database query results into an .xlsx report.
- Clean up columns before importing into another system.
Why does nested JSON turn into a mess in Excel?
A backend teammate hands you data as JSON, but your finance or marketing colleague only opens spreadsheets — or the reverse, they save a tidy sheet as CSV and you need it as JSON for a script. This converter is the bridge, turning JSON, CSV, and Excel into one another without manual copy-paste. One thing to expect: nested JSON objects don't map cleanly onto flat CSV columns. A CSV has just rows and columns, so an object inside an object, or an array inside an array, usually gets flattened into column names like a.b.c or stringified into a single cell. If your data is deeply nested, pick and flatten the fields you actually need at the source first — the output comes out far cleaner.
What does the output look like when a value contains a comma?
One set actually run through this page: the input [{"name":"Ada","dept":"R&D","hours":7.5},{"name":"Bo","dept":"Sales, EU","hours":8}] gives name,dept,hours Ada,R&D,7.5 Bo,"Sales, EU",8. Only Sales, EU got quotes; R&D did not — that is the whole rule: a field is quoted when it contains the delimiter, a quote character, or a newline. Note too that the header row comes from the keys of the first object rather than from scanning every record; if your second record has an extra key, it has nowhere to go, so flatten and normalise before you export.