ZumaTools

Markdown Table Generator

Edit the grid below — the Markdown pipe table updates live with aligned padding, ready to copy.

Rows4
Columns3
Import CSV / TSV
Markdown output
| Name | Role | Score |
| ---- | ---- | ----- |
|      |      |       |
|      |      |       |
|      |      |       |

Everything runs in your browser — nothing you type is uploaded.

How it works

  1. Set the number of rows and columns with the + and − controls, then click any cell and type its content.
  2. Choose left, center, or right alignment per column with the L / C / R buttons, and toggle whether the first row is a header. You can also paste CSV or TSV under Import to fill the grid.
  3. Copy the generated Markdown from the output box and paste it into your README, wiki, or issue.

Frequently asked questions

How do Markdown table alignments work?
Alignment is set in the separator row under the header: ---- or :--- is left, :---: is center, and ---: is right. This tool writes those markers for you when you click the L, C, or R button on a column. Most renderers, including GitHub, GitLab, and CommonMark extensions, honor them for every cell in that column.
Why is the generated table padded with extra spaces?
Renderers ignore the padding, but humans reading the raw file do not. The tool pads every cell so the pipes line up vertically, which makes tables in READMEs and pull request diffs far easier to review. If you prefer compact output, most editors will reformat it, and the padded version still renders identically.
Can I import an existing CSV or spreadsheet?
Yes. Open the Import section and paste CSV or TSV text — copying cells straight from Excel or Google Sheets produces TSV, which is detected automatically. Quoted fields with commas and doubled quotes are handled, and the grid resizes to fit the pasted data so you can keep editing before copying the Markdown.
What happens if a cell contains a pipe character or a line break?
Pipes inside cells are escaped as \| so they do not break the table structure, and line breaks are replaced with spaces because standard Markdown tables cannot contain multi-line cells. If you need a visual line break inside a cell on GitHub, you can type the HTML tag <br> manually after copying.
Is my table data uploaded anywhere?
No. The grid, the CSV parser, and the Markdown generator all run as JavaScript in your browser, and the page makes no network requests with your content. You can confirm this in your browser’s developer tools. That makes it safe to build tables from internal data, credentials lists, or anything else you would not paste into a server-side tool.

About this tool

Writing Markdown tables by hand means counting pipes and hyphens, and one misplaced character breaks the whole layout. This tool replaces that with a small visual grid: add or remove rows and columns, click a cell to type, and the finished pipe table appears below, updating on every keystroke. Column alignment buttons write the correct :--- separator markers, and a checkbox controls whether the first grid row becomes the header.

Everything happens client-side in your browser — the grid state, the CSV parser, and the Markdown generator are plain JavaScript with no server round trips, so your data never leaves your machine. The generator measures the longest cell in each column and pads every other cell to match, producing output where the pipes align vertically in the raw text. Pipe characters inside cells are escaped automatically, and line breaks are flattened to spaces so the table always stays valid.

The import box accepts CSV and TSV, which covers the most common real-world path: select a range in Excel or Google Sheets, copy it, and paste it in — spreadsheet copies are tab-separated and detected automatically. Quoted fields, embedded commas, and doubled quotes are parsed correctly. From there you can fix typos, drop columns, or change alignment before copying the result into a README, GitHub issue, GitLab wiki, or documentation site.

A few practical tips: keep header text short, since the header sets a natural minimum width for the whole column; use right alignment for numeric columns so digits line up when rendered; and remember that Markdown tables need a header row to render at all, so if you turn the header off this tool emits an empty one to keep the output valid on GitHub and other CommonMark-based renderers.

Related tools