Text to HTML table
Turn CSV, tab-separated text copied from Excel, or text split by spaces or a custom character into an HTML table.
Process locally
Files stay in this browser session. Closing or clearing releases them.
Add text
Type or paste the text to process
Adjust settings
Optional: Delimiter, Custom delimiter, First row is the header and more
Run
Processes in this browser; cancel at any time
About this tool
Turn CSV, cells copied from Excel or another spreadsheet, or text split by spaces or a character of your choice into an HTML table. It saves typing <table>, <tr> and <td> by hand when you need a table for a web page, a blog post, documentation or an email template.
The first row can become the header, quoted CSV cells that contain commas or line breaks are read correctly, and special characters are escaped. You get just the <table> markup, or a whole HTML page with simple borders. Up to 1 MB of text is converted in your browser and is not uploaded.
How to use it
- Paste your data with one row per line, or select “Use example”. Cells copied from Excel arrive separated by tabs.
- Choose the “Delimiter”: “Detect”, “Comma”, “Tab (Excel)”, “Spaces” or “Custom”. For “Custom”, enter up to 5 characters in “Custom delimiter”, or \t for a tab.
- Leave “First row is the header” on to put the first row in <thead>, and tick “Whole HTML page with styles” if you want a complete page.
- Select “Run”, then preview the HTML source and download it as table.html.
Formats and limits
- Input
- Text
- Output
- HTML
- Size limit
- 1 MB
- Settings
- Delimiter (Detect, Comma, Tab, Spaces, Custom); Custom delimiter; First row is the header; Whole HTML page with styles
- Privacy
- Files stay in the current browser session. No file bytes are uploaded.
- Price
- Free, no sign-up
Common questions
Why does the table have no borders?
By default you get plain <table> markup without styles, so it takes on the styles of the page you paste it into. Tick “Whole HTML page with styles” for a complete page with borders, cell padding and a shaded header row.
What if rows have different numbers of cells?
Every row is padded with empty cells to match the longest row, so the table stays rectangular.
How do I keep a comma or a line break inside a cell?
Wrap the cell in double quotes, as in CSV, and the comma or line break stays inside it; line breaks become <br>. Quoting works with every delimiter except “Spaces”, which splits on any run of spaces or tabs.
Will HTML in my data be kept as markup?
No. The characters &, <, > and double quotes are escaped, so text such as <b> appears literally in the cell instead of becoming a tag.
How can I see the rendered table?
The preview shows the HTML source. Download table.html and open it in a browser to see the table, ideally with “Whole HTML page with styles” ticked.
Related tools
Code formatter
Format or minify HTML, CSS, SCSS, Less, JavaScript, TypeScript, JSON, Markdown, YAML, XML, SQL, C, C++, C#, Java, PHP, Python and nginx configuration.
HTML, CSS and JavaScript runner
Write HTML, CSS and JavaScript and see the page live with its console output, in an isolated frame.
Markdown editor
Write Markdown with a live preview, then download it as Markdown or a styled HTML page.
HTML tag filter
Strip HTML tags to get readable text, or keep the tags and remove their attributes; chosen tags or attributes can stay. Scripts never run.
Convert dates and time zones
Convert one date-time per line between ISO 8601, Unix time and local time in named time zones. Daylight-saving gaps and repeats are reported.
Lunar calendar converter
Convert Gregorian dates to the Chinese lunar calendar with stem-branch year, zodiac, solar terms and festivals, or lunar dates (leap months marked 闰) back to Gregorian, one per line.