Toolvore

Markdown Table Generator

Build Markdown tables from an editable grid or CSV, with literal text, alignment and local downloads.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Builds a GitHub-flavored Markdown table from a labelled grid or CSV, with literal-text escaping, alignment and Markdown/CSV downloads.

How to use it

  1. 1Edit a grid or import CSV with the correct delimiter.
  2. 2Choose alignment and how cell line breaks appear.
  3. 3Generate and review the Markdown source, then download .md or .csv.

Example

Input
Header: Name, Status Row: Mira, Ready
Output
| Name | Status | | :--- | :--- | | Mira | Ready |

What happens to your data

Grid editing, parsing and file generation happen locally. Text is escaped rather than inserted as HTML; nothing is intentionally saved in browser storage.

Last updated October 2026

Create a GitHub-flavored Markdown table for a README, issue, comparison or project note. Edit headers and body cells, add or remove rows and columns, choose column alignment and download a .md file. If the data already exists in a spreadsheet export, paste or load CSV, semicolon-separated values or TSV instead of retyping the grid. Your text is processed in this browser.

The generator treats every cell as literal text. Pipes do not silently create extra columns, backticks do not open code spans and HTML-looking values do not become executable previews. It produces table source for a destination that supports the GitHub table extension; plain CommonMark alone does not define tables. Inspect the generated file where you intend to publish it because Markdown products vary.

How it works

The first grid row is the header. Every body row has the same number of columns, and each column has an explicit left, center or right alignment. The separator row uses :---, :---: or ---: accordingly. Header-only tables are allowed. On a narrow phone, the editable grid scrolls horizontally inside its own frame, while controls and output remain within the page. Each input is labelled by row and column for keyboard and screen-reader use.

CSV import replaces the current grid only after successful parsing. The first CSV record becomes the header, including blank or repeated header text; later records become body rows. A record inside quotes can contain a delimiter or line break. Doubled double quotes represent a literal quotation mark. Unequal record widths, invalid quote syntax and oversize inputs are rejected rather than silently padded, truncated or skipped. Choose the delimiter explicitly; no automatic type inference converts IDs or dates.

For Markdown output, the generator escapes Markdown punctuation and encodes ampersands and angle brackets so that supplied links, images, code spans and raw HTML remain ordinary text. A literal pipe is escaped for the table grammar. Leading and trailing spaces use character references so the table parser does not simply trim them. Repeated interior spaces may still collapse when the destination displays normal HTML text; this is not a fixed-width layout system.

A GitHub table cell cannot contain a source line break as another physical table line. Choose whether embedded CRLF, CR or LF breaks become spaces or visible backslash-n markers. Tabs become four spaces in Markdown. The CSV download retains the original cell tabs and line breaks, quoting them where necessary. These are disclosed Markdown transformations; the grid is the source of truth and the CSV is useful when exact multiline data matters. No input HTML is inserted into the page.

The CSV export normally retains cell values exactly. Spreadsheet programs may interpret cells beginning with =, +, - or @ as formulas, even after leading whitespace. The explicit CSV protection option prefixes such cells with an apostrophe and reports how many were detected. That option changes those CSV values and does not modify Markdown. It is a precaution, not a guarantee about every spreadsheet application's import settings.

Limits are 20 columns, 100 body rows, 4,096 characters per cell and 256 KiB of table or CSV input. Each output is limited to 512 KiB. No tool data is intentionally saved to browser storage. Editing a cell, alignment, input or export option clears the old generated result, preventing a stale download. Imported files must be UTF-8 text. Remove rows and columns carefully: deletion removes their data, while Reset grid discards the table and starts with two blank body rows.

A Markdown table is best for compact comparisons. It is not an Excel workbook: there are no formulas, merged cells, styling controls or multiple sheets. For very wide or long data, distribute CSV instead of making readers scroll a huge document table. Use the existing CSV Filter, Column Editor or Sample tools before importing a large dataset.

Worked example: Keep a pipe inside one cell

Input
Headers: Tool, Status Row: Markdown table, Review | export Alignment: left, center
Result
| Tool | Status | | :--- | :---: | | Markdown table | Review \| export |

The escaped pipe belongs to the Status cell. It does not introduce a third column.

Common use cases

  • Writing a feature comparison for a GitHub README without hand-counting pipes
  • Turning a small spreadsheet export into a project status table
  • Preparing issue templates with consistent column alignment
  • Publishing text containing code-like punctuation as literal table content

Frequently asked questions

Can I import CSV or paste spreadsheet data?+

Yes. Open the import section, choose comma, semicolon or tab, then import. The first record becomes the header. CSV quote syntax and equal row widths are checked before replacing the grid.

Will Markdown links, images or HTML in my cells run?+

The generator escapes them as literal text and the editing grid uses ordinary text controls. It never injects user markup into an HTML preview.

What happens to multiline cells?+

Choose spaces or visible backslash-n markers in Markdown. The separate CSV download preserves the original embedded line breaks.

Does a CSV download change my IDs?+

The tool does not infer numbers or dates. Values remain text in the file, although a spreadsheet can infer types when it opens it. Import as text when leading zeroes or large IDs matter.

Why are there apostrophes in my CSV?+

The optional formula protection prefixes formula-like cells. Disable it if unchanged values are required and review the receiving spreadsheet's import behavior.

Can I use merged cells, formulas or custom fonts?+

No. This is a plain rectangular GitHub-flavored Markdown table. Use a spreadsheet or a carefully reviewed HTML table when those features are needed.