TSV to HTML Table
Generate an HTML table from tab-separated data. The output is a plain <table> with a real <thead>, indented so it reads well in a template, and every cell is HTML-escaped — so a value containing <script> or an ampersand renders as text instead of becoming markup. Optionally get a styled standalone page you can open directly in a browser.
How to use
- Paste or drop the TSV. Row one becomes the header row.
- Tick with CSS to include a small stylesheet — borders, padding, a header background.
- Tick full document for a complete
<html>page rather than a fragment to paste into an existing template. - Copy or download.
Escaping, and why it matters here
Every cell value passes through HTML escaping: &, <, >, and quotes become entities. That keeps the table structurally valid whatever the data contains, and means pasting untrusted data into a page can't inject markup or script. It also means genuine HTML in your source cells is displayed rather than rendered — if you have a column of links you want live, you'll need to unescape those deliberately after generating.
Where the output fits
The fragment form drops into a CMS, a Markdown file (HTML is valid inside Markdown), an email template, or a static site. The full-document form is useful for handing someone a readable file without asking them to open a spreadsheet. For a bigger table, add <div style="overflow-x:auto"> around it so it scrolls on a phone instead of stretching the page. If the destination understands Markdown, TSV → Markdown is lighter; for a terminal or a code comment, TSV → ASCII table.
FAQ
Can I add classes for my own CSS framework?
Not from the form — but the markup is regular enough to run a single find-and-replace over: <table> to <table class="table"> and so on.
Is the table responsive?
The optional CSS keeps it simple rather than responsive. Wrap it in a container with overflow-x: auto for narrow screens — that's the standard fix for wide tables and needs no media queries.
What about the reverse — an HTML table to TSV?
HTML table → TSV, which handles multiple tables and expands colspan and rowspan.
Are tabs and newlines inside cells handled?
They come through as whitespace, which HTML collapses when rendering. If you need a visible line break inside a cell, replace them with <br> after generating.
Privacy
100% client-side. No upload. See the privacy policy.