How to Convert CSV to a Markdown Table
Convert CSV data into a GitHub Flavored Markdown table for READMEs, issues, and documentation. Browser-based, no signup, no upload.

Table of contents
- What a Markdown table looks like
- Why hand conversion gets painful
- Convert with FormatArc
- Step 1: Open the tool
- Step 2: Paste your CSV
- Step 3: Hit Run
- Edge cases worth knowing
- Pipes inside cells
- Newlines inside cells
- Ragged rows
- Where the converted table goes
- GitHub READMEs
- Pull requests and issues
- Notion, Obsidian, Zenn, Qiita
- Wrapping up
You want to drop a comparison table into a GitHub README. You need to share benchmark numbers in a pull request description. You are migrating notes from a spreadsheet into Notion or Obsidian. In all of these cases, the missing piece is the same: turning CSV-shaped data into a clean Markdown table.
Pasting a spreadsheet directly into GitHub will not produce a Markdown table, and writing the pipes by hand stops being practical past a handful of rows. This guide covers the structure of Markdown tables, the gotchas that catch people, and how to do the conversion in the browser without any setup.
What a Markdown table looks like
GitHub Flavored Markdown (GFM) tables use pipe characters as column separators:
| name | email | role |
| --- | --- | --- |
| Mika | mika@example.com | admin |
| Noah | noah@example.com | viewer |
The first row is the header, the second row is the alignment separator, and everything below is data. Adding : to the separator controls alignment for that column.
| Left | Center | Right |
| :--- | :---: | ---: |
| a | b | c |
The syntax is simple, but typing it by hand stops scaling fast. A 20-row, 5-column table requires keeping all the pipes lined up while you type, which is not how anyone wants to spend their time.
Why hand conversion gets painful
A few rows are fine. In real work the friction shows up immediately:
- Row counts grow — comparison tables in a README often pass 30 rows
- Cells containing the pipe character
|need escaping - Cells containing newlines do not fit in a Markdown table at all
- CSVs with inconsistent column counts produce broken tables
CSVs exported from Excel are particularly fun: thousands separators in numbers can collide with column delimiters, and Windows-style line endings sometimes break naive parsers.
Convert with FormatArc
CSV to Markdown takes pasted CSV and produces a GFM-compatible table. There is nothing to install.
Step 1: Open the tool
Go to CSV to Markdown.
Step 2: Paste your CSV
Paste CSV into the left pane. A copy from Excel, Google Sheets, or a plain text file all work the same way. The first row is treated as the header.
Step 3: Hit Run
Press Run. The right pane fills in with the Markdown table.

The output is ready to paste straight into a README, an issue, or a Markdown document. Column counts and separator widths are normalized for you.
Everything runs in the browser. Customer lists or internal spreadsheets are never uploaded to a server.
Edge cases worth knowing
Pipes inside cells
If a cell contains |, the converter escapes it as \| automatically so it does not collide with the column separator.
| x | y |
| --- | --- |
| foo\|bar | baz |
Newlines inside cells
The Markdown table spec has no representation for line breaks inside cells. FormatArc replaces them with spaces. If you need a visible line break inside a cell, use an explicit <br> tag in your source data.
Ragged rows
If a data row is wider than the header, the extra columns are dropped. If a data row is shorter, the missing cells are padded with empty strings. Either way the output stays a valid table.
Where the converted table goes
GitHub READMEs
API endpoint lists, supported options, library comparisons — README tables show up constantly. Keeping the source as CSV means the table can be regenerated whenever the underlying data changes.
Pull requests and issues
Benchmark numbers, regression test matrices, and design decision summaries all read better as tables. Aggregate the data in a spreadsheet, run it through the converter, paste.
Notion, Obsidian, Zenn, Qiita
Most note-taking and developer publishing tools speak Markdown. Storing data as CSV and converting on demand removes the need to reformat tables every time you move between platforms.
Wrapping up
Converting CSV to a Markdown table by hand burns time on row counts, column widths, and escapes. CSV to Markdown does it in three clicks. Try it the next time you find yourself laying out pipes manually.
For background on CSV itself, see What is CSV. To convert CSV into JSON instead, see the CSV to JSON guide.