Skip to content
TextArray
100% local

Markdown table generator

Turn CSV or tab-separated data into a clean, aligned Markdown table.

Input

Markdown table generator

Paste CSV, semicolon-separated or tab-separated data and this tool turns it into a ready-to-paste Markdown table for GitHub, GitLab, Notion, Obsidian or any other editor that speaks GFM. Copy a range straight from Excel or Google Sheets — spreadsheets put tabs between cells, and the auto-detection picks that up along with commas and semicolons, or you can fix the delimiter explicitly.

By default the first row becomes the table header. Turn that off when your data has no column names and the tool generates "Column 1", "Column 2" placeholders instead, since Markdown tables always need a header row. The alignment option writes the matching GFM markers into the separator row — :--- for left, :---: for center, ---: for right — so numbers can sit flush right while labels stay left.

Cell padding is what makes the output pleasant to read: every cell is padded with spaces so the pipes line up in the raw text, not only in the rendered page. Turn it off for the most compact source. Quoted fields follow the usual CSV rules — a quoted cell may contain commas, doubled quotes and even line breaks, which become <br> so the table structure survives. Pipes inside cells are escaped automatically, and ragged rows are padded to the widest one.

Everything runs locally in your browser: the data is never uploaded, so exports with internal figures or customer records stay on your machine. The tally shows rows and columns live as you type, and the result is one copy away from your README.

FAQ

Can I paste data directly from Excel or Google Sheets?
Yes. Copied spreadsheet ranges are tab-separated, which the auto-detection recognises. If detection guesses wrong, set the delimiter to tab explicitly.
What happens to pipes or commas inside a cell?
Pipes are escaped as \| so they do not break the table. Commas are fine inside quoted fields — the tool follows standard CSV quoting, including doubled quotes.
Why does the output always have a header row?
Markdown tables require one. If your data has no column names, untick "First row is a header" and numbered placeholder headers are generated instead.
Can columns have different alignments?
The alignment option applies to all columns at once. For mixed alignment, generate the table and adjust the separator row markers by hand — :--- left, :---: center, ---: right.
Is my data uploaded anywhere?
No. The tool runs entirely in your browser and your data never leaves your device.