CSV/JSON Converter

Convert a flat table between delimited text, JSON, XML and an Excel workbook.

Files stay on your device No sign-up Free to use
How this works

The tool runs in this browser. Your file or text is not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

Privacy details

Convert controls

Showing an example. Edit to see your own.

Paste delimited text, a JSON array of flat rows, or flat XML. Everything runs in your browser.

Drop your table file here

or choose one from your device

One CSV, TSV, text or .xlsx file up to 20 MiB. A chosen file is read instead of the text box, and the summary says so.

    Without a names row, columns are named column_1, column_2 and so on.

    Off by default so values such as 007 and 1e5 keep their exact text.

    Used when writing CSV. Stops values that begin with = + - @ from running as formulas in a spreadsheet. A workbook download stores every cell as text, so its cells never run as formulas.

    More options

    Used only when Delimiter is set to Another character. Enter one character, such as ^.

    For an .xlsx file: the sheet name or its position, such as 2. Leave empty for the first visible sheet.

    The stored value is what the spreadsheet last calculated. The formula text appears with a leading = and is never calculated here.

    Used when reading and writing delimited text. Change it only for a file that uses the other character.

    Used for the CSV and XML downloads. A workbook download holds UTF-8 XML inside the file.

    Processed in your browser. Your inputs stay on this device.

    How to use CSV/JSON Converter

    1. Choose the conversion: delimited text to JSON, JSON to delimited text, XML to JSON, JSON to XML, Excel workbook to JSON, or JSON to an Excel workbook.
    2. Paste the table into the input box, or choose one CSV, TSV, text or .xlsx file. A chosen file is read instead of the text box.
    3. Set the delimiter, the quote character and the header row option, and open More options for the worksheet, formula cells and encodings.
    4. Read the summary for the row and column counts, then copy or download the result.

    Example: CSV/JSON Converter

    Turn a two-row CSV table into an array of objects.

    You add
    name,qty / Widget,3 / Gadget,5 on separate lines, conversion left on Delimited text to JSON.
    You get
    A JSON array with 2 rows and 2 columns, where each row is an object. The numbers stay quoted text, and the download is named converted.json.

    Options

    Conversion
    Six directions share one page. Delimited text covers CSV, TSV, pipe-separated and a delimiter you type yourself. Excel workbook means .xlsx only, and a chosen workbook is read one worksheet at a time.
    Delimiter and quote character
    Detection suits a well-formed file. Set the delimiter when a European file uses semicolons, or when quotes inside cells confuse detection. Another character lets you type one character such as ^. The quote character is a double quote unless the file was written with a single quote.
    Worksheet and formula cells
    For an .xlsx file, name the worksheet or give its position, such as 2. A formula cell shows the value the spreadsheet stored, which is what a reader can trust without recalculating anything. The other choice prints the formula text with a leading = and still never calculates it.
    Encoding
    An input file is read as UTF-8 unless you pick another encoding. A Windows-1252 or UTF-16 file that was refused as invalid UTF-8 usually needs its own encoding named, or a re-export as UTF-8. A CSV or XML download is UTF-8 unless you pick UTF-16 for an older spreadsheet.
    Protect spreadsheet formulas
    When writing CSV, cells that begin with =, +, - or @ are prefixed so a spreadsheet reads them as text rather than running them. Prefix risky cells with an apostrophe is the default; the space option uses a leading space, and Off leaves cells untouched. An .xlsx download needs no prefix because every cell in it is stored as text.

    Supported inputs and limits

    Flat rows only: a nested object or array stops the conversion and the error names the path. Text input is capped at 20,000,000 characters and 200,000 rows, and one chosen file at 20 MiB. A workbook is checked from its ZIP directory before anything is unpacked: at most 2,000 parts, 96 MB expanded, 32 MB for one part, 500 columns, 200,000 rows and 2,000,000 cells, and a macro, password-protected, older .xls or 64-bit ZIP file is refused. The workbook is then unpacked with the browser's own streaming decompressor, which stops a part as soon as it passes the size its directory declares and gives up after 20 seconds, so a malformed file cannot tie up the page. A browser without that decompressor is told to save the sheet as CSV instead, and the workbook read never falls back to an unchecked path. The reader handles one worksheet at a time and understands the five built-in XML entities only, so a document type or a custom entity stops the read. An Excel date cell arrives as the stored number because cell formats are not read. A workbook download holds at most 400,000 cells, and 32 MB of it, with every cell stored as text. Check cells that begin with a formula character, because the CSV guard changes them.

    Where your input is processed

    This tool processes your input in this browser. Your text and files are not uploaded to UseFreeTools. Check this tool's limits for anything it may save on your device.

    Why the formula guard changes your cells

    A spreadsheet treats any cell starting with =, +, - or @ as a formula, which is convenient until a CSV holds data you did not write. Opening that file can make the spreadsheet evaluate the text. The guard prefixes the cell, defaulting to an apostrophe, and spreadsheets read the rest as text. The apostrophe is normally hidden in the cell view. If your data legitimately starts with one of those characters and the CSV is not going into a spreadsheet, choose Off.

    Why an .xlsx download needs no formula guard

    The writer stores every cell as an inline string, so a value that begins with = is a piece of text in the file rather than a formula to run. That is also why the workbook download keeps a value such as 0012 exactly as text. Read the file back here and a formula-looking cell comes out unchanged, which makes the round trip predictable.

    What is read before a workbook is unpacked

    The ZIP directory is read first: the number of parts, the size each part expands to, and the name of every part. A file that claims to expand far past its stored size, carries a password, holds a macro part, or hides a name outside the package is refused before any part is unpacked. Worksheet XML is then read against the spreadsheet namespace, so an element from another namespace is ignored rather than treated as a row.

    Questions about CSV/JSON Converter

    Do I have to save my spreadsheet as CSV first?

    No. Choose Excel workbook to JSON, pick the .xlsx file and name the worksheet if you need a sheet other than the first one. Files saved as .xls, macro workbooks and password-protected files are refused, so save a plain .xlsx copy instead. A browser too old to stream the workbook says so and asks for CSV, rather than reading the file a slower way.

    Why did a date from my Excel file turn into a number?

    A spreadsheet stores a date as a number and puts the readable date in the cell format, and this reader does not read cell formats. Format the column as text in the spreadsheet and save again when you need the date exactly as it looked.

    Which values count as numbers?

    Number conversion is off by default so leading zeros, IDs and scientific notation survive the round trip. Even with it on, 007 stays text because a leading zero is not valid in a JSON number, and a value longer than 15 digits stays text.

    Why does my exported CSV start some cells with an apostrophe?

    The guard is protecting the spreadsheet, because those cells begin with =, +, - or @. Set Protect spreadsheet formulas to Leave cells exactly as they are if the apostrophe would corrupt the data.

    My file was refused as not valid UTF-8. What now?

    Name the encoding the file actually uses, usually Windows-1252 for an older export or UTF-16 for a file saved by a text editor, or re-export it as UTF-8. In Excel, choose CSV UTF-8 rather than the older CSV option.

    Project manager: Tony Hines · Content updated 4 October 2026 · Report a problem