CSV to Markdown Table Converter - Free & Private

Paste a spreadsheet export and get a Markdown table you can drop into a README, a pull request or an issue. Quoted fields, semicolons and tabs are all handled.

From spreadsheet export to Markdown table

A Markdown table needs a header row, a row of dashes that sets the alignment, and pipe characters around every cell. Writing that by hand for thirty rows of data is tedious and easy to get wrong by one pipe. This converter reads a delimited export, works out how many columns there are, escapes any pipe characters hiding inside the data, folds embedded line breaks into a break tag, and prints the table ready to paste.

Data analysts are the obvious audience. You run a query, export the result, and now you have to put it in a GitHub issue, a Notion page, a Jira comment or a repository README where a raw CSV block is unreadable to everyone else. Technical writers use the same route for reference tables of options and defaults, and support engineers paste small result sets into tickets so the customer can actually read what came back from the database.

The reader follows RFC 4180 rather than splitting on commas. A field wrapped in double quotes may contain the delimiter itself, a line break, or a doubled quote that represents one literal quote character. That matters immediately for European data, where a price written as quoted 48.210,55 would otherwise explode into two columns. Carriage return and line feed endings from Windows are normalised, and an unterminated quote is reported with the line where it opened.

Alignment is set per column with the colon markers in the separator row. A colon on the left means left aligned, one on each side means centred, and a colon on the right means right aligned, which is what you want for currency and counts so the digits line up. Padding cells to a common width does not change how the table renders, but it makes the Markdown source itself readable in a diff, which reviewers appreciate on files that live in version control.

Semicolon files come from Excel in locales that use a comma for decimals, and tab separated files come from anything you copy straight out of a spreadsheet, so both are detected automatically. If you need the same data as structured records instead of a table, the CSV to JSON converter on ToolForte handles that, and the Markdown Table Generator is the better starting point when you are typing a table from scratch rather than converting one.

How the CSV to Markdown Table Converter Works

  1. 01Paste your rows or drop a .csv file. The delimiter is detected from the first line, and you can override it with comma, semicolon, tab or pipe.
  2. 02Say whether the first row holds the column names. If it does not, headings named Column 1 upwards are generated for you.
  3. 03Set the alignment of each column with the small selectors, and decide whether cells should be padded so the Markdown source lines up.
  4. 04Copy the table into your README, issue or pull request, or download it as a .md file.

Why the reader follows RFC 4180

Splitting a line on commas works until it does not, and the failure is silent. A field containing a comma inside quotes, a cell holding a line break, or a doubled quote standing for one literal quote character all break the naive approach, and the damage looks like valid data: a row simply gains a column and every value after it shifts one place. This converter reads the input as a character stream with a quoting state instead. Inside quotes, delimiters and newlines are ordinary text and a pair of quotes collapses to one. Outside quotes, a delimiter ends the field and a newline ends the row. Carriage return and line feed pairs from Windows are normalised, and a lone carriage return from very old Mac exports is treated as a line ending too. If a quote opens and never closes, you get the line number where it started rather than a mangled table. From there the Markdown is mechanical. Pipe characters inside data are escaped with a backslash so they cannot be mistaken for cell borders, embedded newlines become a break tag because a Markdown table cell cannot span lines, and the widest value in each column sets the padding width when you ask for aligned source.

When to Use the CSV to Markdown Converter

Use it any time tabular data has to live inside a document rather than a spreadsheet. Typical moments are pasting query results into a GitHub issue so reviewers can read them, adding a table of configuration options to a README, dropping a small dataset into a Notion or Obsidian page, and writing changelog entries that compare versions. Markdown tables also survive copy and paste into most chat tools and static site generators, which a screenshot of a spreadsheet does not.

Common Use Cases

  • Pasting a query result into a GitHub or Jira issue so the numbers are readable without an attachment.
  • Documenting configuration options and their defaults in a repository README.
  • Turning a survey or analytics export into a table for a blog post or internal wiki page.
  • Checking the column count in a sortable grid before converting CSV/Excel Viewer - Sortable Table Free
  • Building the same data as records for an API instead of a table CSV to JSON Converter - Auto-Detect Format

Expert Tips

  • Keep tables under about eight columns. Wider ones scroll horizontally on GitHub and become unreadable on a phone, so consider splitting the data or transposing it.
  • Trim the export before converting. A Markdown table with two hundred rows is worse than a link to the CSV file, and reviewers will thank you for a summary of the ten rows that matter.
  • If a column looks shifted, check the uneven rows warning. It gives the line number of the first row whose field count does not match, which is nearly always an unescaped quote in the source.

Frequently Asked Questions

Does padding the cells change how the table renders?
Not at all. Markdown ignores the extra spaces, so a padded and a compact table look identical once rendered. Padding exists purely for the source file, where aligned columns make the raw Markdown readable and produce much cleaner diffs in version control.
How do I right align the numbers?
Set the alignment selector for that column to right. It writes a colon at the end of the dashes in the separator row, which is the standard GitHub Flavoured Markdown signal for right alignment. Currency and counts read far better that way because the digits line up.
What happens to a cell that contains a line break?
It becomes a break tag inside the cell, because the row separator in a Markdown table is the line break itself and a cell cannot span two lines. Most renderers, including GitHub, display that as a wrapped cell.
My export uses semicolons and it still parsed correctly. Why?
Detection counts the candidate separators on the first line and picks the most frequent one, which handles the semicolon files that Excel produces in European locales and the tab separated text you get from a copy and paste. Set the delimiter manually when a header row happens to contain more commas than real separators.

Related tools

12 suggested