MarkdownPDF

Markdown Table Generator

Type into the grid, or paste cells from Excel, Google Sheets or a CSV file, and copy a clean GitHub-flavored Markdown table.

Import from CSV, a spreadsheet or an existing Markdown table
This replaces the table above.

Or drop a .csv, .tsv or .md file, or browse

2 rows × 3 columns

Markdown tables without counting pipes

Markdown tables are simple once written and tedious to write: every row needs the same number of pipes, the separator row needs a dash per column, and one stray | in a cell breaks the row. The grid takes care of all of it, and escapes what needs escaping.

| Item   | Qty |
| :----- | --: |
| Apples |   3 |

Tables made here work on GitHub, GitLab, Obsidian, Notion, Docusaurus and anything else that follows GitHub-flavored Markdown. To see one rendered, paste it into Markdown to HTML; to put it in a document, use Markdown to PDF or Markdown to Word. Tables trapped in a PDF? PDF to Markdown extracts them — see extracting tables from PDFs.

Frequently asked questions

How do I convert an Excel or Google Sheets range?

Select the cells in the spreadsheet, copy, then either paste into the import box and press Import, or click a cell in the grid and paste: the block fills the grid from that cell, adding rows and columns as needed. The first row becomes the header.

Which CSV formats are supported?

Comma, semicolon (what Excel writes in many European locales) and tab separators, detected automatically. Quoted fields may contain separators, quotes (doubled, as the CSV standard says) and line breaks.

How is column alignment written?

With colons in the separator row: :--- for left, :---: for centre, ---: for right. Choose it per column from the menu above each column. Without colons, renderers use their default, usually left.

What happens to | characters and line breaks inside cells?

A pipe would end the cell, so it is written as \|. A Markdown table row must stay on one line, so line breaks become <br>, which GitHub, GitLab and most renderers display as a line break.

Can I edit an existing Markdown table?

Yes: paste it into the import box. The alignment of each column is read from its separator row, and escaped pipes and <br> are turned back into what they stand for.

Why align the columns in the source?

It changes nothing in the rendered table; it makes the raw Markdown readable in an editor and in code review. Turn it off for the most compact output.

Limitations

Guides