Edit your table directly in the grid, choose column alignments, and get clean GitHub-Flavored Markdown instantly. Paste CSV or TSV from any spreadsheet to populate the table in one click. All processing runs in your browser โ nothing is uploaded.
Markdown Table Generator
Build GitHub-flavored Markdown tables in a visual grid
| Name | Role | Location | | ----- | -------- | -------- | | Alice | Engineer | New York | | Bob | Designer | Berlin | | Carol | PM | Tokyo |
Tab or comma delimited. Quoted fields supported. First row becomes the header.
What is a Markdown table and when do you need one?
Markdown tables are a simple way to display structured data in plain text that renders as a visual grid in documentation, README files, wikis, and note-taking apps. GitHub, GitLab, VS Code, Obsidian, Notion, and countless other tools all support the GitHub-Flavored Markdown (GFM) table syntax โ making Markdown tables one of the most portable table formats for developers and writers alike.
The raw syntax looks like this:
| Name | Score | Grade |
| ----- | ----: | :---: |
| Alice | 95 | A |
| Bob | 82 | B |
The first row is the header. The second row (the delimiter row) separates the header from
the body and controls alignment: a leading colon (:---) means left-aligned,
a trailing colon (---:) means right-aligned, and colons on both sides
(:---:) mean center-aligned. Everything after the delimiter row is body data.
Why readable, padded Markdown tables matter
Markdown is supposed to be readable in its raw form, not just when rendered. Unpadded tables โ where pipe characters are crammed against uneven text โ are hard to read in code review diffs, terminal output, or any editor without a Markdown preview. This tool pads every column to equal width so the raw Markdown aligns like a real table. That makes it easier to spot data errors at a glance and keeps your git diffs clean.
Padded column width is calculated per column from the widest cell, including the header. No column is ever narrower than three dashes โ the minimum required for valid GFM table syntax.
How to use this tool
- Type or paste data directly into the grid cells. The first row is your header.
- Add or remove rows and columns with the buttons below the grid.
- Set per-column alignment using the selectors (Default, Left, Center, Right).
- Copy the output with the Copy button and paste it into your README, wiki, or doc.
- To import from a spreadsheet: copy cells from Google Sheets or Excel (they paste as TSV), or paste a CSV string, then click Import.
Importing from spreadsheets and CSV files
The quickest way to build a large table is to start in a spreadsheet. Select your cells in Google Sheets or Excel and copy them โ the clipboard contains tab-separated values (TSV). Paste that directly into the import area and click Import. The first row becomes your Markdown header automatically.
The tool also handles comma-separated CSV with quoted fields. If a cell contains a comma, wrap it in double quotes in your source (standard RFC 4180 format) and the parser will handle it correctly. You can use the CSV โ JSON converter to inspect or clean up CSV data before importing it here.
Pipe escaping and special characters
The pipe character (|) is the column separator in GFM tables, so a literal
pipe inside a cell must be escaped as \|. This tool does that automatically โ
type a pipe in any cell and the output will escape it correctly. You never have to think
about it.
Other special Markdown characters inside cells (like asterisks, underscores, or backticks) are left as-is, because they render as intended in table cells: bold, italic, and inline code work normally inside table cells in GFM.
Related tools
- Preview how your table renders with the Markdown Preview tool โ paste the generated Markdown and see it rendered side-by-side.
- Working with CSV data? The CSV โ JSON converter lets you convert between CSV and JSON formats, making it easy to transform data before building your Markdown table.
Frequently asked questions
What is GitHub-Flavored Markdown table syntax?
GitHub-Flavored Markdown (GFM) tables use pipe characters (|) to separate columns and a delimiter row of dashes after the header to separate it from the body. The delimiter row controls column alignment with optional colons: `:---` for left, `---:` for right, and `:---:` for center. GFM tables render in GitHub READMEs, Issues, Pull Requests, GitLab, VS Code preview, Notion, and any editor that supports the CommonMark extension for tables.
How do I set column alignment?
Use the alignment selectors under the grid โ one per column. "Left" adds a leading colon to the delimiter (`:---`), "Right" adds a trailing colon (`---:`), "Center" adds both (`:---:`), and "Default" uses plain dashes (`---`), which most renderers treat as left-aligned. The change is reflected immediately in the Markdown output.
How do I escape a pipe character in a cell?
Pipe characters (|) inside cell content are automatically escaped as \| in the Markdown output so they don't break the table structure. You can type a pipe directly in any cell in the grid โ the tool handles the escaping for you. The backslash-pipe sequence is the standard GFM way to include a literal pipe in a table cell.
Can I import a table from a spreadsheet or CSV file?
Yes. Copy cells from Google Sheets, Excel, Numbers, or any spreadsheet app โ they copy as tab-separated values (TSV). Paste them into the "Paste CSV or TSV to import" area and click Import. The tool also accepts comma-separated CSV with quoted fields. The first row becomes the header, and the grid is replaced with your imported data.
Does this tool send my data anywhere?
No. Everything runs locally in your browser. No data is uploaded or stored. The table generation and CSV parsing all happen on the client side with no network requests.
Related Tools
Get weekly dev tools and tips