CSV to Markdown

Nothing you choose here leaves your browser, and nothing is downloaded to make it work. A comma-separated file is text, so there is nothing to unzip and no library to fetch.

Set from what the file looks like once you choose one.

…or drop a file anywhere on this page.

A Markdown table, for a README, a wiki or an issue.

This is the one people actually need: a table from a spreadsheet, in a repository. Numeric columns get the alignment marker so figures line up, pipes inside cells are escaped so the table keeps its shape, and the awkward case is handled honestly — a cell containing a line break cannot be written at all in a Markdown table, so those are joined with a space and counted on screen.

A comma-separated file has no way to say it. The first line of Anne,12 might be a heading or the first record, and the file is identical either way. Most converters simply assume it is a heading — pandoc does, which we measured — and that quietly eats the first row of every file that had none.

So this suggests, shows you why it suggested that, and lets you change it. The suggestion is made from the data: a first row that is all text above a row containing numbers is almost certainly names; a first row with numbers in it is almost certainly data, because column names are not numbers.

What a Markdown table cannot hold

A line break inside a cell, and there is no way round it: a Markdown table row is one line and the format defines no escape for a break inside a cell. A quoted field containing a newline is perfectly legal and very common in exported data, so those cells are joined with a space and the number of them is shown. A pipe inside a cell is escaped, because an unescaped one ends the cell and the table quietly stops being rectangular.

Rows of different lengths are padded to the widest rather than trimmed to the shortest — a short row is normal in exported data, where trailing empty columns get dropped, and padding is the only choice that loses nothing. Blank lines are dropped rather than becoming rows of empty cells. Both are reported.

Where to go next