SmartQueryTools

Convert CSV to Markdown Table Online

Convert CSV files to a Markdown table directly in your browser. Copy the output and paste it into any Markdown document.

About converting CSV to Markdown

A Markdown table is the way to show a small CSV inside text that renders on GitHub, GitLab, Obsidian, MkDocs or Docusaurus. Typical uses are a results table in a README, a comparison in a pull request description, a benchmark summary in an issue, or a data snippet in engineering docs.

Pipe tables come from GitHub Flavored Markdown rather than core Markdown, so check that your renderer supports them. Most modern ones do. The raw table is readable as plain text, which is why it diffs cleanly in Git. That only holds while the table stays small. The output stops at the first 1,000 rows, and anything past a few dozen rows is usually better linked as a CSV file.

Two characters need special handling. A pipe inside a value would end the cell, so it is escaped as \|. A line break inside a quoted CSV field would end the row, so it becomes <br>, which GitHub renders as a line break. Column alignment is left to the renderer (every separator cell is ---), so add colons yourself if you want numbers right-aligned.

Worked example

A small orders export with an ID, a customer name, a date, an amount (one missing) and a true/false flag, converted with the default settings.

Input (CSV)

order_id,customer,order_date,amount,shipped
1001,Acme Ltd,2026-03-02,249.5,true
1002,Brightside Co,2026-03-02,1200,false
1003,Acme Ltd,2026-03-05,89.99,true
1004,Northwind,2026-03-07,,false

Output (Markdown)

| order_id | customer | order_date | amount | shipped |
| --- | --- | --- | --- | --- |
| 1001 | Acme Ltd | 2026-03-02 | 249.5 | true |
| 1002 | Brightside Co | 2026-03-02 | 1200 | false |
| 1003 | Acme Ltd | 2026-03-05 | 89.99 | true |
| 1004 | Northwind | 2026-03-07 |  | false |

What changes when you convert CSV to Markdown

  • The CSV header becomes the first table row, followed by a separator row of --- cells.
  • Each CSV row becomes one line that starts and ends with a pipe, with cells separated by " | ".
  • Values are written as plain text. Numbers and booleans are not formatted or aligned.
  • Order 1004's missing amount is an empty cell between two pipes.
  • Pipes in values are escaped as \| and line breaks become <br>.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Frequently Asked Questions

How do I right-align numeric columns?

Edit the separator row. Change --- to ---: for right alignment or :---: for centred. GitHub, GitLab and most static site generators honour these colons.

Why does my table show as raw text with pipes?

Either the renderer does not support GFM tables, or the table needs a blank line before it. Put an empty line between the preceding paragraph and the header row. Plain CommonMark renderers without the tables extension always show the pipes as text.

Will long text cells break the layout?

The Markdown stays valid, but the rendered table grows wide and GitHub adds a horizontal scroll bar. Drop or shorten long columns before converting, or use CSV to HTML if you need to control widths with CSS.

What is Markdown format?

Markdown is a lightweight plain-text format that renders as formatted content. Markdown tables can be embedded directly in README files, wikis, documentation sites, and any tool that supports CommonMark or GitHub Flavoured Markdown.

Related Tools