Excel to CSV / JSON Converter

Convert an Excel .xlsx workbook to CSV or JSON and back, picking any sheet from a multi-sheet file, with the SheetJS engine reading it on your device.

🔒 Your spreadsheet is parsed and converted entirely in your browser — nothing is uploaded.

Excel → CSV / JSON

Drop an .xlsx / .xlsm / .xls file here, or click to choose

CSV / JSON → Excel

Convert Excel files to CSV or JSON, right in your browser

Drop an .xlsx, .xlsm or .xls workbook — or paste cells copied out of Excel — and instantly preview any sheet as a table, then export it as clean CSV or a JSON array of row objects. Multi-sheet workbooks let you choose which sheet to convert. Paste CSV or a JSON array in the reverse panel to build a downloadable .xlsx. Tick “Fit column widths to the content” there and each column of the .xlsx opens as wide as its longest cell, the header included, instead of at Excel’s default width; Korean and other wide characters count double.

Private by design

The whole conversion runs locally with the SheetJS engine — your spreadsheet is never uploaded to a server, so even confidential financial or customer data stays on your machine.

Frequently asked questions

Does my spreadsheet get uploaded anywhere?

No. Parsing and conversion happen entirely in your browser, so the file never leaves your device. A macro-enabled .xlsm workbook opens too: its cells are read, and its macros are never run.

Can I convert CSV or JSON back into a real .xlsx file?

Yes. Paste CSV or a JSON array of row objects into the reverse panel, choose the input format, and download an Excel .xlsx workbook.

Can the CSV use semicolons, or the JSON be something other than a list of rows?

Yes. The CSV delimiter can be a comma, semicolon, tab, pipe and a few others — a tab-separated file downloads as .tsv — and the JSON can be row objects, an array of arrays or one array per column. The CSV download carries a byte-order mark, so Excel reads its characters correctly.

Can I paste cells straight from Excel, set the JSON indent, or name the sheet?

Yes. “Or paste cells copied from Excel” takes the cells as Excel copies them, and “Convert pasted cells” runs them through the same preview, JSON shapes and CSV options as a dropped file. “Indent” lays the JSON out with spaces, a tab or “Minified (one line)”, and the preview, Copy and Download follow it. In the reverse panel, “Sheet name” names the sheet in the .xlsx — Sheet1 when left empty — and a name Excel would refuse is flagged, with the reason, before the download.

Can the .xlsx I build open with columns wide enough to read?

Yes. In the reverse panel, tick “Fit column widths to the content” and each column is set as wide as its longest cell, the header included, plus a little air, instead of opening at Excel’s narrow default. Korean and other wide characters count double, a cell with line breaks is measured by its longest line, and a very long cell is capped so one note cannot make a column wider than the screen. It is off by default, so until you tick it the columns open at Excel’s default width.