Markdown Table Generator🔒 100% local
Generate Markdown tables. Privacy-first, no server uploads, no tracking.
Related Tools
Turns pasted rows into a padded Markdown table. The delimiter is guessed from the first line, pipe if it contains one and comma otherwise, column widths come from the longest cell in each column with a floor of three characters, and pipes and asterisks inside cells are escaped with a backslash. A compact un-padded copy of the same table is printed underneath for sources where alignment only adds noise.
How to use it
- Paste the header row first, then one row per line, comma-separated or pipe-separated.
- Press Process to build both versions of the table.
- Copy the padded table, or the two-line short version at the bottom if the destination is a source file rather than a renderer.
Worked example
Name,Age,City
John,30,NYC
Jane,25,LAbecomesGenerated 3-column × 2-row markdown table (aligned, pipes escaped).
| Name | Age | City |
| ---- | --- | ---- |
| John | 30 | NYC |
| Jane | 25 | LA |The padding spaces only matter to a human reading the raw file; every Markdown renderer ignores them. The footer that follows in the real output is the same table with single-dash separators and no padding.
Name,Note
Tom,5*3 | okbecomesGenerated 2-column × 1-row markdown table (aligned, pipes escaped).
| Name | Note |
| ---- | -------- |
| Tom | 5\*3 \| ok |Column widths are measured before escaping, so the escaped cell "5\*3 \| ok" is wider than its eight-character column and the pipes stop lining up underneath it. The escaping itself is what a renderer expects.
When to use it
- Building a table for a Markdown file where aligned pipes make the source readable.
- Turning a two-column list of names and values into a table for a docs page.
- Finding out how a cell that contains a pipe or an asterisk has to be written.
What it does not do
- Widths are computed from the unescaped text, so any cell containing a pipe or an asterisk overflows its column and the alignment breaks, as the second example shows.
- There is no quote handling: a value containing a comma such as "Doe, Jane" splits into two columns, so this is a formatter rather than a CSV parser. Clean the data with a CSV tool first.
- The delimiter is chosen from the first line only, so a header without commas and data with commas produces a one-column table.
- All separators are plain dashes, so every column renders left-aligned with no option to change it.
- Only the first row is treated as the header, and input with a single row is rejected with a message that a data row is needed.