Docspira

Markdown Table Generator

Edit the grid below or paste a range copied from Excel or Google Sheets, set alignment per column, and get GFM-compatible Markdown table source instantly. Everything runs in your browser.

Tip: select a range in Excel or Google Sheets, copy it, click a cell here and paste; the grid updates automatically.

Markdown output

        

Your table data, pasted content and generated Markdown are processed in this browser and are never sent to Docspira. Learn more.

How this Markdown table generator works

Type directly into the grid, or copy a range from Excel or Google Sheets and paste it anywhere in the grid; pasted content with tabs between columns and line breaks between rows replaces the whole grid; pasting plain text with no tabs or line breaks into a cell just fills that one cell, as usual. Use + Row and + Column to grow the table, and the × buttons to remove a row or a column. Each column's alignment (left, center or right) is set independently and is rendered as GFM's own :--- / :---: / ---: delimiter syntax, via the markdown-table library.

A pipe character (|) or backslash (\) typed into a cell is automatically escaped in the generated Markdown so it can't be mistaken for a column separator, and line breaks inside a cell are converted to a single space, since a standard Markdown table row cannot contain a literal line break. Markdown tables in this exact |-delimited form are part of GitHub Flavored Markdown (GFM) and are supported by GitHub, GitLab, most developer docs tools, and many (not all) Markdown renderers used by forums and note-taking apps; always safe for READMEs and GitHub/GitLab issues and PRs, usually fine elsewhere. Nothing you type, paste, or generate here ever leaves your browser.

Related tools: CSV → JSON, JSON → CSV, Markdown → PDF.

What this tool does

Build a Markdown table and copy the ready-to-paste markup.

Markdown table syntax in 30 seconds

| Name  | Role     | Joined |
| :---- | :------: | -----: |
| Ana   | Admin    |   2021 |
| Bruno | Editor   |   2024 |
  • The first row is the header. Markdown tables always have one.
  • The second row is the delimiter row: at least three dashes per column (---). Without it, the lines render as ordinary text, not a table.
  • The colons set alignment: :--- left, :---: center, ---: right. No colon means the renderer's default, usually left.
  • The outer pipes at the start and end of each row are optional in GFM, but keeping them makes the source easier to read and avoids edge cases.
  • The spaces for alignment in the source are cosmetic. |a|b| renders exactly like | a | b |. The generator pads columns only so the raw Markdown stays readable.

What Markdown tables can't do

These limits are part of the format, so no generator can work around them:

You want In a Markdown table
Merged cells (colspan, rowspan) Not possible. Use an HTML <table> if the renderer allows HTML.
A line break inside a cell Not possible in plain Markdown. GitHub and GitLab accept <br> inside a cell because they allow some HTML; many other renderers print it as text.
A table without a header row Not possible. Leave the header cells empty if you really don't want labels.
Lists or code blocks inside a cell Not possible. Inline formatting works: **bold**, *italic*, `code`, links.
Column widths Not controllable. The renderer sizes columns from their content.

Why your table isn't rendering

Symptom Cause Fix
The rows show up as plain text with | characters Missing or broken delimiter row Add | --- | --- | under the header, one --- per column
One cell is split in two A | inside the cell text Escape it as \|. The generator does this automatically
A row has an empty last cell The row has fewer cells than the header Rows with fewer cells are padded with empty cells
A cell from a row is missing The row has more cells than the header Extra cells are dropped. The header decides the column count
The table renders on GitHub but not in your app The app's Markdown renderer doesn't support GFM tables Check whether its "GFM" or "tables" extension is on; otherwise use HTML
The table sticks to the paragraph above it Some renderers need a blank line before a table Add an empty line above the table

Pasting from Excel, Google Sheets or CSV

Copy a range of cells and paste it anywhere in the grid: the tab characters between columns and the line breaks between rows become the table's columns and rows, and the first row becomes the header. If your data is a CSV file rather than a spreadsheet, open it in a spreadsheet first, or turn it into JSON with the CSV to JSON converter if the table is headed for code rather than documentation.

Where Markdown tables work

Tables are part of GitHub Flavored Markdown (GFM), not the original Markdown spec. They work in:

  • GitHub and GitLab: READMEs, issues, pull requests, wikis
  • Most documentation tools built on Markdown (MkDocs, Docusaurus, VitePress, Hugo, Jekyll)
  • Many note apps and chat tools, though some (and many forums) support only part of the syntax

When in doubt, paste the generated table into the place it will live and check the preview before you publish.

FAQ

Is my data uploaded?

No. The table is built in your browser. Nothing you type or paste is sent to Docspira.

How do I put a pipe character inside a cell?

Type it normally in the grid. The generator writes it as \| so it isn't read as a column separator.

Can I convert a Markdown table back into a spreadsheet?

Copy the rendered table from a page that displays it (GitHub, for example) and paste it into Excel or Google Sheets; most browsers copy rendered tables as rows and columns.

Can I add a line break inside a cell?

Not in standard Markdown. The generator turns line breaks inside a cell into a space. On GitHub and GitLab you can type <br> in the cell instead.

How do I make a Markdown table into a PDF?

Put the table in a Markdown document and convert it with Markdown to PDF. Tables are rendered with borders and header styling.

Before you start

Keep headers short and preview the table where it will be published, since Markdown renderers can vary in alignment support.

Privacy

This tool runs in your browser; the text or file you choose is not uploaded for processing. Read the privacy details.