TextArray
100% local

CSV to HTML table

Turn CSV data into clean HTML table markup with thead, tbody and escaped cells.

Input
Output

CSV to HTML table

Paste CSV data and get a clean HTML table back — a thead built from the header row, a tbody with one tr per record, and tidy two-space indentation that slots straight into a template or a code review. Typical jobs: publishing a spreadsheet export on a web page, adding a table to CMS content where the visual editor mangles pasted cells, building an HTML email where tables are still the one layout that renders everywhere, or dropping reference data into documentation.

Leave the delimiter on automatic detection and the tool samples your data and picks the character that produces the most consistent rows, so comma, semicolon, tab and pipe files all convert without configuration. Quoted fields follow RFC 4180: a field wrapped in double quotes may contain the delimiter, doubled "" quotes and even line breaks, which come out as br tags so each record still renders as a single row. Records with missing cells are padded to the widest row, so the table is never ragged.

Every cell is HTML-escaped — ampersands, angle brackets and quotes become entities — so a stray < in the data can never break the page or smuggle markup in. "First row is headers" turns the first record into th cells; switch it off and every row becomes a plain td row. The basic style adds a small style block with hairline borders and wraps the table in a container that scrolls horizontally on narrow screens; markup only leaves the styling to your own CSS.

Everything runs in your browser and the data never leaves your device, so a customer export is safe to convert. Copy the markup, download it as a .txt file, or paste it straight into your page.

FAQ

Which delimiters does it read?
Comma, semicolon, tab and pipe, with automatic detection by default: the tool samples the data and picks the character that yields the most consistent rows. When the guess is wrong, choose the delimiter by hand.
Is the cell content escaped?
Yes. Ampersands, angle brackets and quotes become HTML entities, so data can never inject markup into your page. A line break inside a quoted field becomes a br tag so the record stays one table row.
What does the basic style add?
A small style block with hairline borders via border-collapse and cell padding, plus a wrapper div that scrolls horizontally on narrow screens. All class names are prefixed ta-table, so they will not collide with your CSS. Markup only omits all of it.
What happens to rows with missing cells?
Short records are padded with empty td cells to the width of the widest row, so the generated table always has a rectangular shape.
Is my data uploaded anywhere?
No. The conversion runs entirely in your browser and your CSV never leaves your device.