Excel (TSV) to HTML Table
Convert spreadsheet data copied from Excel or Google Sheets into a ready-to-use HTML table.
Example
Paste tab-separated rows copied from a spreadsheet:
Name Role Score
Ada Engineer 95
Grace Research 102
The tool outputs an HTML table:
<table>
<thead>
<tr><th>Name</th><th>Role</th><th>Score</th></tr>
</thead>
<tbody>
<tr><td>Ada</td><td>Engineer</td><td>95</td></tr>
<tr><td>Grace</td><td>Research</td><td>102</td></tr>
</tbody>
</table>
How it works
Paste tab-separated rows (the format you get when copying cells from a spreadsheet) into the input. The tool parses each line into cells, renders a live preview table, and emits clean HTML source you can copy.
Good to know
This tool turns spreadsheet cells you copy from Excel, Google Sheets, Numbers, or LibreOffice Calc into a clean, ready-to-paste HTML table. Because copying a block of cells puts tab-separated text on your clipboard, you simply paste it into the input and the tool builds matching <table> markup with a live preview alongside the source you can copy. It is aimed at web developers, content editors, technical writers, and anyone who needs spreadsheet data inside a web page, CMS, email template, or Markdown file without hand-typing tags.
Reach for it whenever you have tabular data living in a sheet and a destination that expects real HTML rather than an embedded spreadsheet: documentation pages, blog posts, knowledge-base articles, static-site content, or pricing and comparison tables. It is also handy when you only have a screenshot-style snippet of cells and want structured, accessible markup instead of pasting an image. The "First row is a header" checkbox controls whether the top row becomes <th> cells inside a <thead>; leave it on for labeled data and turn it off for raw rows.
To read the result, check the status line, which reports how many rows and columns were parsed, then scan the preview to confirm the layout matches your sheet. The column count is set by the widest row, and shorter rows are padded with empty cells so everything stays aligned, so an unexpected blank column usually means one row had a stray trailing tab. All cell text is HTML-escaped, meaning characters like <, >, &, and quotes are converted to safe entities and will render as literal text rather than markup.
A practical caveat: this is a tab-separated (TSV) converter, not a CSV parser, so pasting comma-separated values will collapse each row into a single cell. Copy directly from the spreadsheet to get tabs, and note that the output is plain semantic markup with no styling, classes, merged cells, or formulas, so you add your own CSS, borders, or colspan afterward. Everything runs in your browser, so your data never leaves your device and the tool works offline once the page has loaded.
Frequently asked questions
Why tab-separated instead of comma-separated?
When you copy cells from Excel or Google Sheets, the clipboard data is tab-separated (TSV), with tabs between columns and newlines between rows. This tool reads that clipboard format directly, so you can paste straight from your spreadsheet.
What happens to rows with different numbers of cells?
The table uses the widest row to determine column count, and shorter rows are padded with empty cells so every row stays aligned. All cell text is HTML-escaped to keep the output safe.
Is my data uploaded anywhere?
No — this tool runs entirely in your browser. Your input never leaves your device and it works offline once loaded.
Is it free?
Yes, completely free with no sign-up and no limits.
People also ask
How do I copy data from Excel as tab-separated values?
Just select the range of cells in Excel or Google Sheets and copy with Ctrl+C (or Cmd+C). Spreadsheets automatically place the selection on the clipboard as tab-separated text, so pasting it straight into this tool works without any export step.
Can I convert a CSV file to an HTML table with this tool?
This tool expects tab-separated data, not commas, so a raw CSV will put each line into a single cell. Either open the CSV in a spreadsheet and copy the cells, or replace the commas with tabs first so columns are recognized correctly.
Does the generated HTML table include any CSS styling?
No. The output is plain semantic markup using table, thead, tbody, tr, th, and td elements only. You apply your own CSS for borders, padding, striping, or responsive behavior in the page where you paste it.
Will special characters and HTML tags in my cells break the table?
No. Every cell value is HTML-escaped, so characters like <, >, &, and quotation marks are converted to entities and display as literal text instead of being interpreted as markup.
How are blank cells or rows with missing values handled?
The tool uses the widest row to set the column count and pads shorter rows with empty cells, so every row keeps the same number of columns and the table stays aligned. Empty cells render as blank table cells.
Is an HTML table or an embedded spreadsheet better for a web page?
A real HTML table is generally more accessible, searchable, responsive, and lighter to load than an embedded spreadsheet or screenshot. Screen readers and search engines can read its text directly, which a static image cannot provide.
Can I turn off the header row if my data has no column titles?
Yes. Uncheck the First row is a header option and the top row will be output as ordinary td cells in the table body instead of th cells in a thead section.
How do I make the converted table responsive on mobile?
The tool produces only the base markup, so responsiveness comes from your own CSS. Common approaches include wrapping the table in a container with horizontal scrolling or using media queries to restack cells on narrow screens.
Related tools