Developer Data

Markdown table generator

What to do

Processed in your browser · nothing is uploaded

Local · padding is for the editor, not the renderer

Turns tab- or comma-separated data into a markdown table with the columns padded so the source is readable, and tidies an existing table the same way.

How to use the markdown table generator

1 Paste your input. The result appears immediately.
2 Pick the operation you want.
3 Copy the result, or save it as a file.

Copying cells from a spreadsheet puts tab-separated text on the clipboard, and reading that directly is what makes a straight paste work. Which delimiter is assumed depends on the paste itself: a single tab anywhere in it makes the whole thing tab-separated, and otherwise it is read as CSV, quotes and all, so a field written as "Doe, Jane" survives as one cell. A semicolon-separated export out of a European Excel is neither, and comes through as a single column; swap the semicolons for commas in find and replace first.

The padding is the reason to bother. Markdown itself ignores the extra spaces and renders a ragged table identically, but a ragged table is close to unmaintainable in a text editor, and every table in a real repository is padded for that reason. Padding is measured in code units rather than in how wide a character prints, so Latin text lines up exactly and anything double-width does not: a column of Chinese, Japanese or Korean will look a character or two narrow in a monospaced editor, and an emoji counts as two even though it prints as one. The table still renders correctly either way, since the alignment is only for whoever opens the source next.

Tidying an existing table regenerates the widths but reads the alignment off the separator row you pasted and writes it back, so a centred or right-aligned column stays that way. A table arriving with no separator row at all, or a broken one, gets a fresh left-aligned row rather than an error message, since a broken separator means the table was not rendering in the first place. Two things do not survive the trip. An escaped pipe is the first: GFM says a \| inside a cell is a literal pipe, and this splits on every pipe it sees, so a cell containing one is torn in two and every column after it shifts along. Take pipes out before pasting, or write them as &#124;. A line break inside a quoted CSV cell is the second, and it fails quietly: the row is cut at the break and the remainder of it is dropped rather than wrapping or erroring, so flatten those cells before pasting and use <br> where a line genuinely has to wrap.

What people use it for

  • Putting a range of spreadsheet cells into a README
  • Repairing a separator row that stopped a table rendering
  • Realigning a table after a longer value went into a column
  • Writing a comparison table into a pull request description
  • Getting a table into a ticket or a wiki that takes Markdown

Questions

Spreadsheets put tab-separated text on the clipboard, and that is exactly what this reads.

GitHub, organizing information with tablesGitHub Flavored Markdown spec, Tables extension
Was this tool any good?
Internal signal only · I use it to find the tools worth rebuilding