It turns a table from one format into another without breaking it. Paste cells copied from Excel or Google Sheets (they arrive as tab-separated text), or a table written as CSV, JSON, a Markdown table, an HTML table, SQL INSERT statements, a LaTeX tabular or an ASCII box table. The format is detected for you. The data lands in an editable grid, where you can fix cells, sort, remove duplicates or transpose, and the result is written in the format you pick: CSV, TSV, JSON, Markdown, HTML, SQL INSERT, LaTeX or ASCII. Copy it or download it. Everything happens on this page.
Nothing gets broken: quotes, commas, line breaks, Unicode
Most table conversions fail on the same cells: a comma inside a value, a quote, a line break typed with Alt+Enter in Excel, a pipe in a Markdown cell, an ampersand in LaTeX. Each format here has its own correct escape, applied in both directions:
| Problem in a cell | CSV / TSV | Markdown | HTML | LaTeX | SQL |
|---|
Quote " | doubled inside quotes | as is | " | as is | as is (' is doubled) |
|---|
| Delimiter | cell quoted | a pipe gets a backslash | as is | \& for & | as is |
|---|
| Line break | inside quotes | <br> | <br> | \shortstack | kept in the string |
|---|
The tests convert a deliberately awkward table (quotes, commas, a line break, Vietnamese, Japanese and an emoji, empty cells, and every LaTeX special character) to all eight formats and read each back to exactly the same grid.
- CSV follows RFC 4180 with Windows line endings; choose comma, semicolon (what Excel uses in many European locales), tab or pipe. TSV is what spreadsheets copy and paste.
- JSON writes an array of objects keyed by the header (repeated or blank header names get _2 or column_N), or arrays without a header. Values stay text unless you ask for numbers, true/false and null; long ids and numbers with leading zeros always stay text. Reading JSON flattens nested objects into dotted columns, using the same code as the CSV and JSON converter.
- Markdown produces a GitHub-style table padded so the columns line up in plain text; a table without a header gets "Column 1, Column 2…" because Markdown requires one.
- SQL writes multi-row INSERT statements (100 rows each) with identifiers and strings quoted for standard SQL, MySQL (backticks, backslashes doubled) or SQL Server (brackets, N'' strings). Empty cells can be NULL and numbers unquoted.
- LaTeX writes a
tabular with \hline rules and escapes \ & % $ # _ { } ~ ^. Reading also understands booktabs rules. - ASCII draws a +---+ box table that lines up in a monospace font, counting Chinese, Japanese and Korean characters and emoji as two columns wide.
The article on converting spreadsheet data without breaking it walks through the failures in detail. To clean a large CSV or JSON file rather than a table you can see, use the CSV and JSON converter; to write a whole document around the table, the Markdown editor.