Convert CSV to an HTML Table

Upload a CSV file, check it in the searchable, sortable preview, then copy a clean static HTML table or download it as a page. The search and sort are for checking; the copied table is plain HTML. Files are parsed in your browser and never uploaded.

How to convert a CSV file to an HTML table

  1. Export your data as .csv (Excel: File → Save As → CSV UTF-8; Google Sheets: File → Download → CSV) or as a .json array.
  2. Drop the file in the box above. The first row of a CSV is used as the header; for JSON the object keys become the columns.
  3. Use the search box and click column headers to check the data. Sorting and searching only affect the preview.
  4. Click Copy HTML for the table markup, or Download HTML for a standalone page.

Have the data open in a spreadsheet already? The Excel to HTML table converter takes a direct paste of the cells, and the JSON to HTML table converter handles nested objects and API responses.

What the copied HTML looks like

<table class="htmlify-table">
  <thead>
    <tr>
      <th scope="col">name</th>
      <th scope="col">email</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ada Lovelace</td>
      <td>[email protected]</td>
    </tr>
  </tbody>
</table>

A short <style> block scoped to the htmlify-table class is included above the table so it looks reasonable on any page; delete it if your site already styles tables. Cell text is HTML-escaped, so commas, quotes and angle brackets in your data come through literally.

Frequently asked questions

What CSV formats are supported?
Comma-separated files with a header row, encoded as UTF-8, up to 10 MB. Quoted fields, embedded commas and line breaks inside quotes are handled. The first row must contain a name for every column; a blank header cell is reported as an error so columns do not silently merge.
What JSON structure does it expect?
An array of objects, or an object with a data property holding that array. Each object becomes a row and the keys of the first object define the columns. For nested objects, mixed keys or arrays of arrays, use the JSON to HTML table converter, which flattens them.
Does the search and sort come through in the HTML?
No. Search, sort and pagination are there to check the data before you copy it. The copied HTML is a plain static table with every row, so it works in any CMS, email or static site without JavaScript. If you need a sortable table on your own site, add a library such as DataTables or a few lines of JavaScript around the markup.
How large a file can I convert?
Up to 10 MB. Very large tables are still generated in full, but a page with tens of thousands of rows will be slow to render in a browser, so consider splitting the data or paginating on your site.
Is my data uploaded anywhere?
No. The file is parsed with JavaScript in your browser, and the HTML is generated there too. Nothing is sent to a server, which makes the tool safe for customer lists and internal reports.
Why is there a style block above the table?
So the table is readable when pasted somewhere with no table styles. The CSS is scoped to the htmlify-table class and will not affect other tables. Remove the block if your site already styles tables, or keep it and override the class in your own stylesheet.

More free HTML converters