tsvkit.org
TSV Toolkit
Sample data Say hi →

TSV to HTML Table

clean <table> · optional CSS · optional full document

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.

tsv → html
Drop a .tsv file here, or
ready

How to use

  1. Paste or drop the TSV. Row one becomes the header row.
  2. Tick with CSS to include a small stylesheet — borders, padding, a header background.
  3. Tick full document for a complete <html> page rather than a fragment to paste into an existing template.
  4. 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.