WW Tools

CSV ↔ Markdown Table Converter

Convert CSV or TSV data into a GitHub-flavored Markdown table and back, on one screen with per-column alignment and correct pipe escaping.

Converted table appears here

About CSV ↔ Markdown Table Converter

You have a CSV export or a spreadsheet selection and you need it as a table in a README, a pull request, or a Jira ticket. Markdown wants a pipe table with a |---|---| separator row, and writing that by hand gets tedious past a few rows. This converter does it as you type. Paste CSV, TSV, or a copied Excel or Google Sheets range into the left panel and a clean GitHub-flavored Markdown table appears on the right. It also goes the other way, turning a Markdown table back into CSV so you can drop it into a spreadsheet and sort or filter it. Both directions share one screen with a swap button, so you do not bounce between pages. The parser follows RFC 4180, so quoted fields with embedded commas, doubled quotes, and line breaks survive the trip, and it auto-detects whether your data uses commas, tabs, semicolons, or pipes. A literal pipe inside a cell is escaped to \| so it does not break the table, and it is un-escaped when you convert back. Per-column alignment is the part many converters skip. Pick left, center, or right for each column and the tool writes the matching :--, :-:, or --: marker row instead of forcing one alignment on everything. Ragged rows are padded to the header width so the table stays rectangular. Everything runs in your browser, so the data you paste stays on your machine.

How to convert CSV to a Markdown table

  1. Paste your CSV, TSV, or a copied spreadsheet selection into the left panel, or drop a .csv or .tsv file onto it.
  2. The delimiter is detected automatically; override it (comma, tab, semicolon, or pipe) if the guess is wrong.
  3. Leave "First row is header" on if your first line is column names, or turn it off if every line is data.
  4. Set each column's alignment to left, center, or right to write the :--, :-:, or --: marker row; leave a column on Default for a plain separator.
  5. Copy the GitHub-flavored table, use Copy as CSV or TSV for a different format, or download it as a .md file.
  6. To go the other way, switch to "Markdown → CSV" (or press Swap) to turn a table back into CSV for a spreadsheet.

Common Use Cases

README and pull request tables

Turn a CSV export into a GitHub-flavored Markdown table that renders correctly in a README, a PR description, or an issue, with the column alignment you want.

Query output into docs

Paste the rows from a SQL client or an analytics export and drop a clean table into a wiki, a Jira ticket, or a Confluence page.

Markdown back to a spreadsheet

Lift a table out of a Markdown doc into CSV or TSV so you can open it in Excel or Google Sheets and sort, filter, or chart it.

Spreadsheet paste

Copy a range from Excel or Google Sheets, which lands on the clipboard as tab-separated text, and paste it straight into a Markdown table.

Frequently Asked Questions

How do I convert a CSV to a Markdown table?

Paste the CSV into the left panel. The tool detects the delimiter, parses the rows, and shows a GitHub-flavored Markdown table on the right as you type. Copy it or download it as a .md file. There is no submit button.

How do I convert a Markdown table back to CSV or open it in Excel?

Switch to the Markdown → CSV direction and paste the table. The alignment row is stripped and you get CSV back. To paste directly into Excel or Google Sheets, set the output delimiter to Tab and use Copy as TSV, since spreadsheets read tab-separated values cleanly.

How do I align columns left, center, or right in a Markdown table?

On the CSV → Markdown side, each detected column gets its own alignment picker. Left writes :--, center writes :-:, and right writes --: in the separator row. A column left on Default gets a plain --- separator, which most renderers show left-aligned.

How do I escape a pipe inside a Markdown table cell?

A literal | inside a cell would otherwise be read as a column break, so the tool writes it as \| automatically. When you convert a table back to CSV, \| is turned back into a plain | in the cell, so the round trip is clean.

How are commas, quotes, and line breaks inside CSV cells handled?

The parser follows RFC 4180. A field wrapped in double quotes can hold commas, doubled quotes (which become a single "), and line breaks. A line break inside a cell becomes a <br> in the Markdown table and is read back as a newline when you convert to CSV.

What is the difference between a pretty and a compact Markdown table?

Pretty pads every cell with spaces so the columns line up in the raw text, which is easier to read and edit by hand. Compact uses minimal-width cells. Both render identically on GitHub, so pick whichever is easier for you to work with in the source.