CSV to Markdown Table

Turn CSV or TSV data into a clean GitHub-flavored Markdown table.

What CSV to Markdown Table helps you do

READMEs, pull requests, and issue trackers render Markdown tables from plain pipe-delimited text. This tool converts CSV or TSV into that table shape, escaping pipes and line breaks so the result does not spill into extra columns. It is the quickest way to turn a small dataset into something a reviewer can read in a pull request.

The table is generated entirely in your browser. Pasted rows and dropped files are not uploaded to Haivix.

How it works

The input is parsed into a header row and data rows. Each cell is escaped for Markdown: pipe characters become \| and line breaks become <br>. The table is assembled with a divider row that carries the chosen alignment, then returned as plain Markdown or downloaded as a file.

How to use CSV to Markdown Table

  1. Paste CSV or TSV data, or drop a file onto the upload area.
  2. Confirm the delimiter and header row, then choose left, center, or right alignment.
  3. Copy the Markdown table or download it as a .md file.
  4. Preview the rendered table before committing it.

When to use it

  • Paste a small dataset into a README, wiki, or pull request description.
  • Document an API response shape or configuration matrix in a GitHub issue.
  • Convert a CSV export into a readable table for release notes or internal docs.
  • Add a comparison table to a design document.
  • Show a small set of test cases in a bug report.
  • Turn a spreadsheet summary into a table a reviewer can scan.

When not to use it

  • Do not use it for a very large dataset; Markdown tables are hard to read and slow to render.
  • Do not expect the alignment to override a renderer that ignores it.
  • Do not convert a file without a header row unless the first row can serve as one.

Example

A CSV of environment variables with name, required and default columns becomes a three-column Markdown table. A default value that contains a pipe is escaped as \|, so the row keeps its shape when GitHub renders it in the pull request.

What you can do with CSV to Markdown Table

  • Paste CSV or TSV data, or drop a file.
  • Detect the delimiter or choose one explicitly.
  • Use the first row as the Markdown header.
  • Escape pipes and convert line breaks to <br>.
  • Set left, center or right column alignment.
  • Copy the table or download it as a .md file.

Example: add a config matrix to a README

Paste the small CSV and confirm the header row. Markdown needs a header, so the first row must contain the column names.

Choose alignment only if the renderer in use supports it; many do, but the table still reads correctly without it.

Copy the result into the README and preview the rendered page. A wide table is valid Markdown but may scroll sideways on a phone.

What to know before you start

  • Markdown tables need a header row; the first row is used as the header unless you turn that option off.
  • Column alignment depends on the Markdown renderer; the divider row only expresses the intent.
  • Very wide tables are valid Markdown but hard to read on narrow screens.
  • There is no cell merging or multi-line cell layout beyond <br>.
  • The output is a table only; surrounding prose must be added separately.

Common mistakes

  • Forgetting that the first row becomes the header.
  • Leaving an unescaped pipe in a cell and creating an extra column.
  • Using a very wide table on a narrow documentation page.
  • Assuming every renderer honors the alignment divider.
  • Copying the table without checking the rendered result.

Troubleshooting

If the table breaks into extra columns, a cell contains an unescaped pipe. Recheck the source or escape it manually.

If the header is wrong, the first row was not the intended header. Add one before converting.

If line breaks disappear, the converter replaced them with <br>; check how the renderer displays raw HTML.

If the table is too wide, drop low-value columns before converting.

If the delimiter is wrong, the whole table becomes one column; choose the delimiter explicitly.

If a cell contains a line break, the converter writes <br>; a renderer that strips raw HTML will show the two lines as one. Check the target renderer before publishing, and keep cells short enough to read on a narrow screen.

If a column is mostly empty, drop it before converting; a table full of blank cells is harder to scan than a narrower one with the columns that matter.

Related standards and documentation

  • GitHub Flavored Markdown defines the table syntax used here.
  • RFC 4180 describes the CSV input.
Pipes escaped, header first
  • The first row becomes the header.
  • Pipes become \| and line breaks <br>.
  • Preview the rendered table.

Frequently Asked Questions