Generate perfectly formatted Markdown tables visually — set columns, add rows, choose alignment and copy the pipe-formatted Markdown table ready for GitHub, GitLab, Notion or any Markdown editor.
Enter the number of columns and type each column header. Choose the alignment for each column: left, centre or right — Markdown pipe tables support per-column alignment.
Click Add Row to add rows and fill in the cell values. Rows can be reordered by drag and drop. Delete any row with the remove button.
The Markdown table code updates live in the output panel. Click Copy to grab the pipe-formatted table, ready to paste into GitHub README, Notion, Obsidian or any Markdown editor.
A Markdown table uses pipe characters (|) and hyphens (-) to define columns and rows in a text-based format. Example: | Column 1 | Column 2 | on the header row, | --- | --- | on the separator row, then data rows. Markdown tables are supported by GitHub, GitLab, Bitbucket, Notion, Obsidian, Bear, Typora, Gatsby, Jekyll, Hugo, MkDocs, Docusaurus, Confluence, and most modern Markdown editors and documentation platforms.
Alignment is set in the separator row (the row of hyphens between the header and body). Left align: | :--- |, right align: | ---: |, centre align: | :---: |. The generator applies your chosen alignment per column automatically. In the rendered output, text alignment applies visually in GitHub, Notion, Obsidian and most Markdown renderers that fully implement the GFM table extension.
There is no hard limit — you can create tables with any number of columns and rows. Practically, very wide tables (20+ columns) may not display well on narrow screens in the rendered output. For readability, tables with more than 8–10 columns should be considered for splitting into multiple narrower tables. Row count is unlimited — tables with hundreds of rows are generated instantly.
Yes — copy cells from Excel or Google Sheets (which copies as tab-separated values), paste into the CSV/TSV import field, and click Import. The tool creates the correct number of rows and columns automatically and populates all cell values. The first row is used as the column headers. This is the fastest way to convert spreadsheet data to a Markdown table without manually typing each cell.
Markdown tables are a GitHub Flavored Markdown (GFM) extension, not part of the original Markdown specification. They are not supported by all Markdown parsers. Table rendering requires: GFM or CommonMark with table extension enabled, the separator row (--- between header and body) to be present, and at least one pipe character at the start or end of each row. Editors that do not support GFM tables will show the raw pipe syntax instead.
Yes — Markdown inline formatting works inside table cells. Bold: **text**, italic: *text*, inline code: `code`, links: [label](url), and strikethrough: ~~text~~ all render correctly within table cells in GFM-compatible renderers. However, block-level elements (headings, lists, paragraphs, fenced code blocks) cannot be used inside table cells — only inline elements are supported within the cell boundaries.
Markdown tables are simpler to write and read in source form but have limited formatting options — no cell merging, no colspan/rowspan, no inline styles, limited alignment control. HTML tables support full formatting: merged cells, custom styles, captions, nested content, accessibility attributes and complex layouts. For simple data tables in documentation or README files, use Markdown tables. For complex tables on web pages or in emails, use HTML (see our HTML Table Generator).
Yes — GitHub fully supports GFM tables in README.md, wiki pages, issue comments, pull request descriptions and GitHub Pages content. The pipe-format table from this generator renders as a styled grid table on GitHub with alternating row colours and a distinct header row. GitLab and Bitbucket also render GFM tables. The output from this generator is tested to be fully compatible with all three platforms.
Yes — rows can be reordered by clicking the Up/Down arrow buttons on each row card. Columns can be reordered by dragging the column headers in the visual grid. The Markdown output updates immediately to reflect the new order. You can also delete any row or column individually with the remove button, and add new rows at the bottom or new columns at the right with the Add Row and Add Column buttons.
Markdown table column widths are determined by the rendered content — longer content produces wider columns. There is no Markdown syntax to specify fixed column widths. In the rendered output (HTML converted from Markdown), you can use CSS to set equal column widths on the table element (table-layout: fixed; with equal width on th elements). For fixed-width columns, the HTML Table Generator offers more precise layout control.