Markdown Table Generator
Build a Markdown table in a grid and copy clean, aligned output.
The first row is the table header.
How to use it
- Edit the grid directly: click any cell and type. The first row is the table header.
- Use Add row / Add column to grow the table, or the small x next to a row or column to remove it.
- Choose the column Alignment - left, center or right - and the separator row updates accordingly.
- To bring in existing data, paste CSV into the import box (comma, tab, semicolon or pipe) and click Import CSV.
- Copy the generated Markdown from the output panel, or download it as
table.md.
Common use cases
- READMEs and docs - produce tables that render correctly on GitHub, GitLab and most Markdown engines.
- Turning spreadsheets into docs - paste a CSV export and get the table without hand-drawing pipes.
- Comparison tables - draft feature comparisons with editable cells instead of counting pipe characters.
- Release notes - keep a tidy table of changes, versions and dates.
Why it stays private
The grid, the CSV parser and the Markdown builder all run in your browser's memory. Nothing is uploaded, so table data from internal documents stays on your device.
FAQ
Q: What happens to pipe characters inside a cell?
A: They are escaped as \| and line breaks inside a cell are flattened to spaces, so the table structure never breaks.
Q: How does the CSV import decide the delimiter? A: It counts commas, tabs, semicolons and pipes on the first line and picks the most frequent. Quoted fields with doubled quotes are handled tolerantly.
Q: Do ragged CSV rows break the table? A: No. Short rows are padded with empty cells and long rows are trimmed, so every row matches the header length.
Your data stays on this device
Markdown Table Generator runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.