CSV to HTML Table

Convert CSV into a clean, escaped HTML <table> you can paste anywhere.

Convert CSV to an HTML table instantly — RFC 4180 quoting, header row detection, HTML-escaped cells, and optional pretty indentation. Runs entirely in your browser, nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Are special characters escaped?

Yes. The five HTML-unsafe characters (& < > " ') are escaped in every cell so your table renders correctly and safely, even with values like <script> or A & B.

This tool converts CSV data into clean, semantic HTML table markup you can paste straight into a web page, email or CMS. It produces a proper <thead>/<tbody> structure when the first row is a header, and safely escapes every cell so your data renders as text rather than breaking the page.

How it works

The CSV is read by an RFC 4180-aware parser, so quoted fields, embedded commas, escaped double-quotes ("") and both LF and CRLF line endings are handled correctly. Each value is then HTML-escaped — the five unsafe characters & < > " ' are replaced with their entities — so a value like <script> or A & B renders as literal text. Rows are wrapped in <tr> with <td> cells; with the header option on, the first row becomes a <thead> of <th> cells. You can pick the delimiter and toggle pretty indentation.

Example

Given:

Name,Role,City
Ada,Engineer,London

it produces:

<table>
  <thead><tr><th>Name</th><th>Role</th><th>City</th></tr></thead>
  <tbody><tr><td>Ada</td><td>Engineer</td><td>London</td></tr></tbody>
</table>

Every cell is HTML-escaped, so values like A & B or <tag> render as text rather than breaking your page. Toggle pretty indentation for readable source or turn it off for a compact one-liner.

When to use this over a Markdown table

SituationBest format
Pasting into a GitHub README or wikiMarkdown table
Embedding in an HTML page or emailHTML table
CMS that strips MarkdownHTML table
Sending to a client via email newsletterHTML table

HTML tables give you full control over styling with CSS classes; you can add class="table table-striped" (Bootstrap) or any other utility class to the <table> tag after pasting. For email clients that strip stylesheets, inline styles on <td> elements are usually required — add them after the initial paste.

Accessibility note

The <thead> / <tbody> split generated by this tool is the foundation of an accessible table. Screen readers use the <th> elements in <thead> as column headers when announcing cell values in <td>. To go further, add a <caption> element immediately after <table> to describe what the data represents — this one addition significantly improves accessibility for assistive technology users.

Security note

Even though all five HTML-unsafe characters are escaped, if your CSV comes from untrusted user input you should still apply your server-side escaping before rendering. The tool’s output is safe to paste into your own HTML, but treat any dynamic re-rendering of the cells as a separate escaping boundary.

Adding CSS classes after pasting

The generated <table> has no inline styles or CSS classes — it is clean semantic HTML. After pasting, you can enhance it with any CSS framework:

<!-- Bootstrap 5 -->
<table class="table table-striped table-hover">

<!-- Tailwind (example) -->
<table class="w-full border-collapse text-sm">

<!-- Plain CSS: add a <style> block in your page -->
<style>
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background: #f4f4f4; font-weight: 600; }
</style>

Everything runs in your browser — nothing is uploaded.