Create an HTML table without writing a single line of code. Start a new table or import an existing Excel (.xlsx, .xls) or CSV file, edit the cells in a spreadsheet-like table editor, pick a few simple options such as header row, border, width and text alignment, and watch the live preview update instantly. The HTML table generator produces clean, semantic HTML with <thead>, <tbody>, <th> and <td> that you can copy straight into your website, blog or CMS. Everything runs client-side in your browser โ your Excel and CSV files are never uploaded to a server.
Drop an Excel or CSV file here
.xlsx, .xls, .csv, .tsv or .txt โ your file never leaves your browser
The HTML Table Generator turns spreadsheet data into a ready-to-use HTML table. Import an
Excel or CSV file (or start with an empty table), edit the cells in a visual table editor,
check the live preview and copy the clean HTML into your website, blog, newsletter or CMS. You do not need to know anything
about HTML: the generator writes the <table>, <thead>, <tbody>,
<th> and <td> tags for you.
The whole workflow is: Import Excel/CSV โ check or edit the table โ preview โ Copy HTML.
.xlsx or .xls files, pick a worksheet and the data appears in the editor.Data in the editor:
Product | Price | In stock
Wireless mouse | 24.95 | Yes
USB-C hub | 39.00 | Yes
Generated HTML (styling switched off):
<table>
<thead>
<tr>
<th scope="col">Product</th>
<th scope="col">Price</th>
<th scope="col">In stock</th>
</tr>
</thead>
<tbody>
<tr>
<td>Wireless mouse</td>
<td>24.95</td>
<td>Yes</td>
</tr>
<tr>
<td>USB-C hub</td>
<td>39.00</td>
<td>Yes</td>
</tr>
</tbody>
</table>
The first row becomes a <thead> with <th scope="col"> cells; all other rows go into the
<tbody>. This is the structure search engines, screen readers and CSS frameworks expect.
With Add border, Responsive table and Table width: 100% switched on, the
generator adds a small <style> block and a scrolling wrapper. Everything is plain HTML and CSS โ no JavaScript.
<style>
.data-table { border-collapse: collapse; width: 100%; }
.data-table th, .data-table td { border: 1px solid #cccccc; padding: 8px; text-align: left; }
.data-table th { background-color: #f2f2f2; font-weight: bold; }
.table-wrapper { overflow-x: auto; }
</style>
<div class="table-wrapper">
<table class="data-table">
...
</table>
</div>
On a phone or a narrow column the table can scroll sideways instead of breaking the page layout. If your website already styles tables, switch Include styling off and paste only the bare table.
Spreadsheets often contain characters that have a special meaning in HTML. A cell with the text
Price < 50 & "in stock"
is written to the HTML as
<td>Price < 50 & "in stock"</td>
so the browser shows exactly what was in the cell instead of interpreting it as a tag. Line breaks inside a cell are
converted to <br>, and empty cells become empty <td></td> elements so the
columns stay aligned.
Excel in many European countries saves CSV files with a semicolon as separator:
Naam;Plaats;Bedrag
Jansen;Amsterdam;12,50
De Vries;Utrecht;8,75
The CSV importer detects the semicolon automatically and shows Detected separator: Semicolon. Values such as
12,50 stay exactly as they are. If the detection ever picks the wrong character, select the right separator and
the table is rebuilt immediately.
<th> cells inside <thead>.<style> block with the border, padding, alignment and width settings. Switch it off for pure HTML without any CSS.600px or 80%.<caption> element above the table.Drop an Excel or CSV file, check the table, and copy the HTML โ or click Load example to see how a finished table looks. No sign-up, no upload, no HTML knowledge required.