Paste CSV, TSV or other delimited rows and copy the resulting <table> markup. Quoted fields, "" escapes and line breaks inside quotes are read as one cell, and cell text is escaped for HTML.
Runs locally in your browserPaste CSV, TSV or other delimited rows, choose the character that divides the columns, and the page returns table markup: one <tr> per row and one <td> per field, ready to paste into a page, an email template or a README.
The rows are read in the browser with a parser that understands quotes: a field wrapped in double quotes may contain the separator, "" stands for one literal quote, and a line break inside a quoted field stays inside that cell. Nothing is uploaded, and the page keeps working offline once it has loaded.
A field wrapped in double quotes may contain the separator itself: in "ac, abs, moon" the comma is part of the text, so the row keeps four fields instead of splitting the quoted value into three. Inside a quoted field, "" stands for one literal double quote, which is how a value such as "Venture ""Extended Edition""" arrives intact.
A line break inside a quoted field is kept inside that cell, and a line break at the very end of the paste does not add an empty row. If the box is empty, the page says so instead of returning an empty table.
The output is a bare <table> fragment: one <tr> per row, one <td> per field, and no attributes, no CSS, no <thead> and no header row — the first row is an ordinary <td> row.
Cell text is escaped for HTML: & becomes &, < becomes < and > becomes >. A cell that contains markup or a script tag therefore stays visible text in the generated table instead of becoming part of the page that embeds it.
The separator is matched as a literal string, not as a regular expression, so a custom separator such as . * ( or :: is ordinary text. The page never guesses the separator: if the column count in the status line looks wrong, the delimiter choice is the first thing to check.
Input is pasted text only — there is no .csv or .xlsx file picker, so a spreadsheet has to be exported or copied from its own application. The conversion runs in the browser and a few thousand rows are instant; results above 100,000 characters are shown without syntax colouring so that the tab stays responsive.