Build an HTML table visually — rows/columns, header cells, alignment, borders, zebra stripes, paste CSV/TSV — copy clean markup, browser-only
- Runs locally
- Category Developer & DevOps
- Best for Formatting, validating, shrinking, or inspecting code-adjacent text.
Tip: paste a range from Excel / Google Sheets straight into a cell to bulk-fill, or use Import CSV / TSV for raw data.
Inline style survives pasting into Gmail / Notion / most CMS editors. Class mode is cleaner for a real web page.
| Plan | Price | Seats |
|---|---|---|
| Free | $0 | 1 |
| Pro | $12/mo | 5 |
<table style="border-collapse:collapse;width:100%">
<thead>
<tr>
<th scope="col" style="border:1px solid #ccc;padding:8px;text-align:left;background:#f2f2f2">Plan</th>
<th scope="col" style="border:1px solid #ccc;padding:8px;text-align:right;background:#f2f2f2">Price</th>
<th scope="col" style="border:1px solid #ccc;padding:8px;text-align:center;background:#f2f2f2">Seats</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border:1px solid #ccc;padding:8px">Free</td>
<td style="border:1px solid #ccc;padding:8px;text-align:right">$0</td>
<td style="border:1px solid #ccc;padding:8px;text-align:center">1</td>
</tr>
<tr>
<td style="border:1px solid #ccc;padding:8px">Pro</td>
<td style="border:1px solid #ccc;padding:8px;text-align:right">$12/mo</td>
<td style="border:1px solid #ccc;padding:8px;text-align:center">5</td>
</tr>
</tbody>
</table>What this tool does
Build a real HTML <table> visually and copy clean, hand-editable markup. Edit cells in a spreadsheet-like grid, add or delete rows and columns with one click, and set per-column alignment (left / center / right). Choose where the header cells go — first row, first column, both, or none — and we emit correct <th scope="col"> / <th scope="row"> so screen readers and SEO crawlers read the table right. Toggle semantic <thead> / <tbody> sections, borders, and zebra striping. Two CSS delivery modes: inline style="" on every cell (survives pasting into Gmail, Notion, WordPress, and most CMS editors that strip external stylesheets) or a single class + <style> block (cleaner for a real web page). Paste a range straight from Excel / Google Sheets into any cell to bulk-fill, or drop raw CSV / TSV into the importer. Every cell is HTML-escaped, so a stray < or & in your data never breaks the output or injects markup. A live preview shows exactly what the browser renders, and one click copies the HTML. 100% client-side — your table data never leaves the tab.
Tool details
- Input
- Files + Text + Structured content
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy + Preview
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 9 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Developer & DevOps · Developer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How HTML Table Generator fits into your work
Use it in the small gaps between coding, reviewing, debugging, and shipping.
Developer jobs
- Formatting, validating, shrinking, or inspecting code-adjacent text.
- Preparing snippets for documentation, tickets, commits, or handoff.
- Checking a small payload quickly without switching tools.
Developer checks
- Run irreversible transforms like minify or obfuscate on a copy.
- Keep secrets out of pasted snippets unless the tool explicitly stays local.
- Use your normal tests or linter before shipping transformed code.
Good next steps
These links move the current task into a more complete workflow.
- 1 Markdown Table Generator Build Markdown tables visually — add/remove rows, column alignment, paste from Excel / CSV — browser-only Open
- 2 HTML Table to CSV Converter HTML table to CSV converter — paste HTML or full page source, extract all tables, get CSV/TSV/JSON/Excel-ready output with header detection + colspan/rowspan handling. Open
- 3 CSV to Markdown Table Convert uploaded or pasted CSV into clean Markdown tables with quoted-cell support, locally in the browser. Open
Real-world use cases
Drop a pricing comparison into a marketing email
Email clients are the harshest rendering environment on the web — Gmail and Outlook strip <style> blocks and external CSS entirely. Build your three-tier pricing table here, keep CSS delivery on "inline style", set the first row as the header, turn on borders, and copy. Every <td> carries its own style="" so the table looks identical in the recipient's inbox. No more "it looked fine in my editor but arrived as an unstyled wall of text" surprises.
Build a spec table for a CMS post without touching code
Your WordPress / Ghost / Contentful editor has a "custom HTML" block but no table builder. Type your rows here, set the header column so the left-hand labels render as <th scope="row">, copy the inline-styled HTML, and paste it into the custom HTML block. The table is accessible (proper scope attributes) and self-styled, so it survives the CMS's stylesheet without inheriting weird theme borders.
Convert an Excel range to clean documentation HTML
You have a 12-row config table in a spreadsheet and need it in your docs as real HTML. Copy the range in Excel, paste it straight into the top-left cell — the tab-separated data fills the grid in one shot. Switch CSS delivery to "class + <style>" for clean markup your docs site can theme, set header row, and copy. What used to be ten minutes of hand-typing <tr><td> is now two clicks.
Prototype a table layout before wiring up a component
Before you build a React/Vue table component, you want to see the structure: which cells are headers, where borders sit, whether zebra striping helps readability. Sketch it here with the live preview, toggle thead/tbody and striping, and read the generated HTML as a reference for your JSX. The scope attributes and section structure are exactly what you'd hand-author — copy them across.
Make a comparison table for documentation accessibility audits
A11y audits flag tables that use <td> for headers or omit scope. Rebuild the flagged table here with header row or header column, which emits <th scope="col"> / <th scope="row"> automatically, plus <thead> / <tbody> sectioning. Paste the corrected markup back and the next axe / Lighthouse run passes the table-headers check without you memorising the ARIA table contract.
Common pitfalls
Using inline style for a large data-heavy page. Inline style="" repeats the same declarations on every cell, so a 200-row table bloats your HTML. For real web pages prefer class + <style> mode — the CSS is defined once. Inline mode is for email / CMS where external CSS gets stripped.
Forgetting scope on header cells. A table that uses <td> for headers (or <th> with no scope) fails accessibility audits and reads poorly in screen readers. Pick header row or header column here and the correct scope="col" / scope="row" is emitted for you — don't hand-strip it afterwards.
Pasting HTML into a cell and expecting it to render. Cell content is escaped on purpose, so <b>bold</b> shows up literally as text. That's the safe default — if you genuinely need markup inside one cell, copy the generated table out and edit that cell by hand in your own editor.
Privacy
The grid editor, HTML serializer, CSV/TSV parser, and live preview are all plain JavaScript running in your browser tab. No cell content is ever sent to a server, no analytics record what you typed. The one caveat: your table data is encoded into the URL query string (?d=...) so a "share link" reopens the same table — which means the destination server's access log records that data if you paste the link into Slack or email. For a public table that's fine; for confidential figures, copy the HTML manually instead of sharing the URL. Style preferences (header mode, borders, stripes) are saved to localStorage on your device only.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- Add Line Numbers Number every line of pasted text — set start, step and separator, zero-pad to align, skip blanks, or strip numbers back off — browser-only
- AES Text Encryptor Encrypt & decrypt text with a password — AES-256-GCM + PBKDF2 via WebCrypto — 100% in your browser, nothing uploaded
- Age Difference Calculator The exact gap between two birthdays — years/months/days, percentage, and the date one person is twice the other's age — browser-only
- AI Model Comparison AI model comparison — 20+ models (GPT / Claude / Gemini / Llama / Qwen) across price, context, speed, capabilities (2026).