Convert between CSV/TSV and Markdown tables, including quoted commas, line breaks and pipes
When you select cells in a spreadsheet and copy them, what lands on the clipboard is tab separated. A file exported from the same spreadsheet is usually comma separated, and in some locale settings it is semicolon separated. If your pasted data collapses into a single column, check this setting first.
In CSV, a value containing a comma or a line break is wrapped in double quotes, and a double quote inside the value is written twice. This tool reads data using that rule. A Markdown table separates cells with pipe characters and treats one line as one record, so a comma inside a value is harmless but a pipe or a line break breaks the table. On output, pipes are escaped with a backslash and line breaks become br tags. Converting back to CSV reverses both.
A Markdown table is only rendered as a table when the header row, the separator row and the body rows all have the same number of columns. This tool pads the missing cells to match the widest row, so ragged data can be pasted as is and still comes out as a valid table.
Clear the header checkbox and the first line is treated as data, while the header gets placeholder names. A Markdown table cannot omit its header row, so placeholders are used instead of leaving it blank. Rename them by hand after exporting.
Yes. It follows the CSV quoting rules, so commas, line breaks and doubled quotation marks inside a quoted cell are read as one cell. When writing a Markdown table it replaces line breaks inside a cell with a br tag and escapes pipe characters, so the table does not break.
Yes. Switch the direction and a pasted Markdown table is converted back to CSV or TSV. The separator row of hyphens and colons is skipped, and escaped pipes and br tags are restored to plain characters and line breaks.
Missing cells are padded with empty strings to match the widest row. A Markdown table is not rendered as a table unless every row has the same number of columns, which is why this padding is applied.
No. All conversion happens in your browser with JavaScript, and nothing you paste is sent to a server.