FormatterHQ

Markdown Table Generator

Convert CSV, pasted spreadsheet cells or JSON into a GitHub-style Markdown table with aligned, padded columns. Pipes and line breaks inside cells are escaped for you.

Input CSV
Output MARKDOWN
Ready.

How to use the Markdown Table Generator

  1. Paste CSV, cells copied from a spreadsheet, a JSON array or an existing Markdown table, or upload a file.
  2. Choose an Alignment (Left, Center, Right or Default) and whether to Pad columns.
  3. Set First row is header; without a header row, columns are named Column 1, Column 2 and so on.
  4. Click Generate Markdown and copy the table into your README, wiki page, issue or pull request.

A Markdown table generator for real data

Typing Markdown tables by hand means counting pipes and dashes and fixing them every time a value changes. This Markdown table generator writes the table for you from data you already have: a CSV file, a range copied from Excel or Google Sheets, or a JSON array. The output is a pipe table in the GitHub Flavored Markdown style, which GitHub, GitLab, many wikis and most static site generators render.

Example

Documenting command-line flags from a CSV:

Command,Description,Default
--port,"Port to listen on",8080
--mode,"dev | prod",dev
--banner,"Line one
Line two",

With the defaults (left alignment, padded columns):

| Command  | Description          | Default |
| :------- | :------------------- | :------ |
| --port   | Port to listen on    | 8080    |
| --mode   | dev \| prod          | dev     |
| --banner | Line one<br>Line two |         |

Two cells needed special handling. The pipe in dev | prod was escaped as \|, otherwise it would start a new column. The line break in the banner cell became <br>, because a Markdown table row must stay on one line.

Alignment options

Alignment is set with colons in the separator row under the header:

OptionSeparatorEffect
Left:---Text aligned left (default)
Center:---:Centered columns
Right---:Right aligned, useful for numbers
Default---No colons; the renderer decides

The choice applies to every column. If only one column should be right-aligned, generate the table and move the colon in that column's separator by hand.

Pad columns or keep it compact

With Pad columns on, every cell is padded with spaces so the pipes line up and the table is readable in plain text, in a code review or in a terminal. Turn it off for the smallest output; here combined with Right alignment:

| Command | Description | Default |
| ---: | ---: | ---: |
| --port | Port to listen on | 8080 |

Both versions render identically. Padded tables produce larger diffs when one long value changes, so some teams prefer compact tables in frequently edited files. Padding counts characters, so emoji or CJK text may look slightly misaligned in a monospace editor, but the rendered result is unaffected.

Input formats

  • CSV with any common delimiter, including quoted values with commas and line breaks.
  • Spreadsheet cells pasted from Excel, Google Sheets or LibreOffice, which arrive as tab-separated text.
  • JSON arrays of objects. Nested objects become dotted column names such as owner.team.
  • Markdown tables, which is a quick way to re-pad or re-align a table someone else wrote.

Untick First row is header when your data has no header; the generator adds Column 1, Column 2 and keeps every row as data, because Markdown tables always need a header row.

Where generated tables help most

  • README files – feature matrices, supported versions, environment variables and configuration flags, kept in a sheet and regenerated when they change.
  • Issues and pull requests – benchmark results or query output. Many database clients copy a result grid as tab-separated text, which pastes straight in here.
  • Documentation sites – static site generators that render Markdown, where a table from a CSV is easier to maintain than hand-written HTML.
  • Tidying existing tables – paste a ragged table someone typed by hand and get it back with aligned pipes.

Things to watch for

  • Numbers are normalized, so 4.20 becomes 4.2. If you need fixed decimals, provide the data as JSON strings, for example {"v": "4.20"}, which are copied as-is.
  • Cell formatting such as bold or links is not added, but Markdown already inside a cell, like **new**, is passed through and will render.
  • Pipe tables are an extension to Markdown. Renderers that follow only the original syntax show them as plain text.

To preview the rendered table, paste it into the Markdown viewer. For the opposite direction, HTML to Markdown converts an HTML table, and the LaTeX table generator produces the same data for papers and reports.

Privacy

The table is generated locally by your browser; your data is not uploaded. Using Load URL or Save & Share involves our server, by design.

Frequently asked questions

How do I put a pipe character inside a Markdown table cell?
Escape it as \|. The generator does this automatically for every pipe in your data, so values such as dev | prod stay in one cell.
Can I add a line break inside a Markdown table cell?
Markdown table rows cannot span several lines, so the generator replaces line breaks with
. GitHub and most renderers display that as a line break inside the cell.
Can I align columns differently?
The Alignment option applies to all columns. For mixed alignment, generate the table and then edit the separator row: :--- for left, :---: for center and ---: for right.
Do Markdown tables work in GitHub README files?
Yes. GitHub Flavored Markdown supports pipe tables in READMEs, issues, pull requests, comments and wikis, as do GitLab and Bitbucket.
Can I create a table without a header?
Markdown tables require a header row. If your data has none, untick First row is header and the generator adds generic Column 1, Column 2 headers.

Last updated September 26, 2026

Related tools

LaTeX Table Generator Convert CSV, spreadsheet cells or JSON into LaTeX tabular code with captions, labels, borders or booktabs styling. Table to HTML Converter Convert CSV, TSV, Markdown or JSON data into a clean HTML table with optional CSS styling and a live preview. Hyperlink Generator Generate a hyperlink as HTML, Markdown, BBCode and plain text at once - ready for websites, READMEs, forums and e-mails. Random CSV Generator Generate realistic fake CSV test data — names, emails, addresses, dates and more — with custom fields. Random TSV Generator Generate realistic fake TSV test data — names, emails, addresses, dates and more — with custom fields. HTML to Markdown Converter Convert HTML to clean Markdown: headings, lists, links, images, code blocks, tables and strikethrough, with style options. Merge CSV Files Merge several CSV files into one: match columns by header name or position, add the source file name, remove duplicate rows. Runs in your browser. CSV Splitter Split a CSV file every N rows, into equal parts or by the values of a column. The header is kept in every file; download parts or one ZIP. Tableizer: Excel to HTML Table Paste cells copied from Excel or Google Sheets and get a styled HTML table. Choose header colour, font and row striping. Compare CSV Files Compare two CSV files by key column or row position: see added, removed and changed rows with old and new values, then export the differences. CSV Editor Online Edit CSV files online like a spreadsheet: change cells, add, move or delete rows and columns, sort, filter, find and replace, undo, then export. CSV to PDF Converter Convert CSV to a printable PDF table: header row on every page, fitted and wrapped columns, A4, Letter or Legal, page numbers. Made in your browser.