CSV to Markdown Table Converter

Paste your CSV data and choose the delimiter to generate a Markdown table.

How it is calculated

Each non-empty line of the pasted text is one row, split into cells with the chosen delimiter (comma by default, or semicolon). Standard CSV quoting is understood, so a quoted cell can contain the delimiter, and each cell is trimmed of surrounding spaces. The first row always becomes the header. The second output line is the separator row, one marker per column: :--- for left, :--: for centre, ---: for right. Rows shorter than the widest row are padded with empty cells, and the column count is the widest row. Pipe characters inside a cell are escaped as \| so they do not split the cell. The result also reports the row count, header included, and the number of columns. Empty input gives no result.

Worked example

Three lines are pasted with the semicolon delimiter and right alignment: a header Item, Qty, Price, a row Pen, 12, 1,50, and a row whose first cell is quoted, "Notebook; A5", 3, 4,25. Because of the quotes, the semicolon inside Notebook; A5 does not start a new cell, and the decimal commas stay inside their cells. The tool reports 3 rows and 3 columns, and writes the header, a separator of ---: markers, and the two data lines, each between pipes. Pasted into a README, the numeric columns line up on the right edge.

Try this example →

Common mistakes

  • Leaving the delimiter on comma for semicolon-separated data, which is common when decimals use a comma: every line then becomes one wide cell or splits at each decimal comma.
  • Expecting a tab-separated paste to work. Only comma and semicolon are offered, so a tab-separated paste ends up as one column; convert tabs to one of the two first.
  • Forgetting the header. The first line is always the header row, so data without a header gets its first record promoted into the header.
  • Starting a cell with a double quote and never closing it. The rest of the line is swallowed into that cell. Inside a quoted cell, a literal quote is written as two double quotes.
  • Expecting numbers to be aligned by the tool. It only writes the alignment marker; the right-aligned look appears when a Markdown renderer displays the table.

About this calculator

Markdown tables use pipe characters (|) to separate columns and a header row followed by a dashed separator row (e.g. --- | --- | ---) to mark the first row as headers; colons on either side of the dashes (:---, :---:, ---:) set left, center, or right alignment. This tool parses comma- or semicolon-delimited CSV rows and rewrites them into that pipe-and-dash syntax automatically, escaping any stray pipe characters inside cell values so the table doesn't break.

Developers, technical writers, and open-source maintainers use it to turn spreadsheet exports or database query results into tables for README files on GitHub and GitLab, wiki pages, and static-site generators like MkDocs, Docusaurus, and Jekyll — all of which render Markdown tables natively without needing raw HTML table markup.

Was this helpful?

You can pick up to 3 reactions.

Comments (1)

  • Editorial team

    Spreadsheet programs in many locales save CSV with semicolons, so check the delimiter before blaming the output. After pasting the result into a README or wiki, look at the rendered preview: some Markdown processors only draw a table when a blank line sits above it. Cells with pipes are escaped for you, but line breaks inside a cell are not supported. Which Markdown flavour do you publish to, and has any renderer shown your table oddly?

Popular calculators

All Calculators