LazyTools

🔒 Every tool runs in your browser, the files and values you enter are never uploaded to any server. How it works

📑 CSV to Markdown Table

Paste CSV, copy a Markdown table, ready for GitHub READMEs, pull requests, and any docs that speak Markdown.

2 rows × 3 columns

Rate this tool:
Anonymous, no account, no identifier

How the csv to markdown table works

The CSV is parsed with the same RFC 4180 quote-aware parser as the JSON converter, then rendered as a GitHub-flavored Markdown table: a header row, a --- separator line, and one pipe-delimited row per record. Pipe characters inside values are escaped (\|) and embedded newlines become spaces so the table stays intact. The structure Markdown requires is exact: the second line must be a row of dashes with one cell per column (| --- | --- | …), which tells the renderer where the header ends and the body begins. With headers turned off, a generic first row is still emitted because a Markdown table cannot exist without a header line.

The fastest route from spreadsheet to documentation: copy cells from Excel or Google Sheets (which copies as tab-separated text), paste here with auto-detect, and the tab delimiter is recognized, one paste, one copy, done.

Frequently asked questions

Can I paste directly from Excel or Google Sheets?

Yes, spreadsheet copies are tab-separated, which auto-detect recognizes. Paste, copy the Markdown, drop it in your README.

What if my data contains the | character?

It is escaped as \| automatically, so the table structure survives values like "a|b".

Does Markdown support column alignment?

Yes, via colons in the separator row (:--- left, :---: center, ---: right). The tool emits plain --- separators; add colons where you want alignment.

How do wide tables render?

Markdown tables do not wrap, very wide tables scroll horizontally on GitHub. Consider trimming columns before converting.

What does the output look like for a two-column CSV?

The CSV name,role / Ada,Engineer produces three lines: | name | role |, then | --- | --- |, then | Ada | Engineer |. The dash line is mandatory, without it the block renders as plain text, not a table.

Why did my table break after pasting?

Usually a raw pipe or an unescaped line break inside a cell. This tool escapes pipes as \| and flattens in-cell newlines to spaces, but if you hand-edit afterwards, keep every row to the same number of | separators or the columns misalign.

Is anything uploaded?

No, conversion is local and instant.

Related file converters

From the blog