Logo

MonoCalc

/

Markdown Table Generator

Programming

Header

2

3

4

Tab / Shift+Tab move between cells, Enter moves down (adding a row at the end), Shift+Enter adds a line break. Paste a selection from Excel, Google Sheets or a web page into any cell to fill the grid from there.

4 rows × 4 columns (1 header + 3 body) · 199 characters · 5 lines

About This Tool

Markdown Table Generator – build and repair GitHub pipe tables

Pipe tables are the most fiddly part of Markdown. Every row needs the same number of cells, the delimiter row decides the alignment, a stray | inside a cell silently creates an extra column, and keeping the pipes lined up by hand is tedious. This Markdown table generator replaces all of that with a spreadsheet-style grid: type or paste your data, choose an alignment for each column, and copy a correctly escaped, neatly aligned GitHub Flavored Markdown (GFM) table. A live preview renders the result the way GitHub will, and the source line for the cell you are editing is highlighted so you can see exactly where your text ended up.

Paste from Excel, Google Sheets, CSV or JSON

The fastest way to convert Excel to a Markdown table is to copy a range and paste it into any grid cell. Spreadsheets place an HTML table on the clipboard, and the grid reads it directly, keeping links, bold, italics and strikethrough as Markdown. When only tab-separated text is available, it is parsed as TSV, which also handles quoted multi-line cells. The paste fills the grid from the cell you clicked and grows the table as needed, all as one undo step. For files, the Import panel accepts CSV, TSV, JSON (an array of objects, an array of arrays or a single object), HTML tables and existing Markdown, and auto-detects the format and the CSV delimiter.

Fixing a messy hand-written table

Paste an existing table into Import and the tool acts as a Markdown table formatter. It follows the same rules GitHub uses to read a table, so the grid shows what GitHub actually sees, and each repair is reported with a note on what GitHub would have done:

  • short rows are padded with empty cells;
  • rows with extra cells get a new column, where GitHub would quietly drop the data;
  • a header and delimiter row with different cell counts, which stops GitHub rendering a table at all, is fixed;
  • escaped pipes, <br> line breaks and alignment colons are read back correctly.

How the Markdown is generated

Each cell goes through the same steps in a fixed order: line endings are normalised, the text is trimmed, pipes are escaped, and line breaks become <br>. Pipe escaping is exact: a backslash is added before every | that is preceded by an even number of backslashes, so text you already escaped is left alone. This matters inside code spans too: GitHub still treats an unescaped pipe in `x || y` as a column break, so it is written as `x \|\| y`.

Aligned layout pads every column so the pipes line up in the source, and the delimiter row uses at least three hyphens, for example | :--- | :---: | ---: |. Compact layout skips the padding for the smallest diff. Trailing empty rows and columns are dropped, so a stray blank row at the end never reaches your README.

Leaving the outer pipes off
Leading and trailing pipes are optional in GFM, but leaving them off can break a table. If the table has one column, has no header row, has a row whose first cell is empty or starts with a heading, list or quote marker, or would be indented into a code block by padding, the tool puts the outer pipes back and tells you why.

Markdown cells versus plain-text cells

By default, cells are Markdown source: **bold**, `code` and [links](https://example.com) pass straight through. Switch Cell content to Plain text when your data contains characters such as *, _, < or \ that should appear literally. They are then backslash-escaped, except inside bare URLs, which GitHub autolinks and which an escape would break.

Editing tips

Tab and Enter move through the grid like a spreadsheet, and Enter on the last row adds a new one. Column menus sort (numbers numerically, text in natural order, blanks last), insert, move and delete columns, while row menus can promote any row to the header. Right-align numbers aligns every numeric column in one click, and Transpose swaps rows and columns. Your work is autosaved in this browser.

Wide characters and emoji
Aligned padding counts CJK characters and emoji as two columns wide, which is the common wcwidth approximation. Some editors and fonts draw emoji or ambiguous-width characters differently, so a column may look one space off there. Only the source spacing is affected; the rendered table is always correct.

Frequently Asked Questions

Is the Markdown Table Generator free?

Yes, Markdown Table Generator is totally free :)

Can I use the Markdown Table Generator offline?

Yes, you can install the webapp as PWA.

Is it safe to use Markdown Table Generator?

Yes, any data related to Markdown Table Generator only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does this Markdown table generator work?

You type or paste into a spreadsheet-style grid, pick an alignment for each column, and the tool writes a GitHub Flavored Markdown pipe table as you go. Every cell is escaped, padded and joined in your browser, and the result is rendered with a GFM parser so the preview shows what GitHub will display.

Can I paste a selection straight from Excel or Google Sheets?

Yes. Click a cell and paste: spreadsheets put an HTML table and tab-separated text on the clipboard, and the grid reads either one, filling cells from the one you clicked and adding rows and columns as needed. Links and bold text from an HTML table are kept as Markdown.

How do I put a pipe character or a line break inside a cell?

Just type it. Pipes are escaped as `\|` automatically, including inside code spans where GitHub still treats an unescaped pipe as a column break. Press Shift+Enter for a line break, which is written as `<br>` (or a space, if you prefer).

Can it fix a Markdown table I already wrote?

Paste the table into Import. Ragged rows are padded, rows with extra cells get an extra column instead of losing data, and a header/delimiter mismatch that would stop GitHub rendering the table is repaired. Each fix is listed with a note on what GitHub would have done.

Why do the columns look slightly misaligned in my editor?

Aligned layout measures text in monospace columns and counts East Asian characters and emoji as two columns wide. Some editors and fonts draw emoji or ambiguous-width characters differently, so a column may look one space off. The rendered table is never affected.

Is my data uploaded anywhere?

No. Parsing, generation and the preview all run in your browser, imported files are read locally, and nothing is sent to a server. Your grid is autosaved only in this browser's local storage, and Clear removes it.