Data
Table to Markdown Converter
Paste a CSV or TSV table and get a Markdown table ready to drop into a README or document.
Press ⌘ Enter to run
3 lines · 57 chars
Ready — press Run or ⌘ Enter
How this tool handles files
- Processing
- In your browser, on-device
- Storage
- Nothing stored
- Output
- A file you download
- Your responsibility
- Review before official use
- Runs in your browser. Your file is processed on your own device and, on this site, is not uploaded to our servers.
- Nothing is stored. Your file and its output are gone the moment you close or reload the page.
- Review sensitive files (bank, ID, medical) and check the output before sharing it.
Every tool on FormatOS runs in your browser. Read our Privacy Policy and File Handling Policy.
Common uses
- Embed a table inside a Markdown README
- Convert exported data into Markdown for docs
Limitations
- Comma vs. tab detection is automatic but conservative
Where a Markdown table actually earns its place
This converter takes a CSV or TSV table you already have and rewrites it as a GitHub-Flavored Markdown table: a header row, a `--- | ---` divider, then one piped row per record. The realistic payoff is for people who write in Markdown but keep their data somewhere else. A developer documenting an API can drop a parameters table into a README without hand-typing pipes; a maintainer can turn a small exported spreadsheet of config flags or supported versions into a table that renders cleanly on GitHub, GitLab, and most wikis.
It fits the same everyday moments outside of code. Pulling a short results table from a spreadsheet into a Markdown-based note (Obsidian, a static-site post, an issue comment), pasting a roster or schedule into a docs page, or preparing a comparison grid for a knowledge-base article are all natural uses. Because Markdown is plain text, the output also archives and diffs well, which matters when the table lives in version control alongside everything else.
It is built for compact, human-readable tables rather than data pipelines. If the destination renders Markdown, this saves the tedious manual formatting; if the destination wants a real data file, a CSV or JSON converter is the better stop.
The paste-run-copy flow and what it understands
You work in two panes: paste your CSV or TSV into the input box, press Run (or Cmd/Ctrl+Enter), and the Markdown appears on the right, ready to Copy or Download as a `.md` file. A sample table loads on first visit so you can see the shape of the result immediately, and everything runs in your browser, so nothing is uploaded and nothing persists once you close the tab.
Separator handling is automatic but deliberately conservative. If the text contains a tab it is treated as TSV; otherwise, if it contains a comma it is treated as CSV; failing both, runs of two or more spaces are treated as column gaps. The first row is always taken as the header, and the divider row is generated for you. That is the whole feature set, which is the point.
It does not offer column-alignment markers, a no-header mode, or per-column control, and it does not pull tables out of PDFs, images, or HTML. It formats text you give it; it is not an OCR or web-scraping step.
Where it can trip you up
The most common surprise is the header assumption. Every input is rendered with its first row as column headings, so a table whose first line is actually data will show that data bolded as a header in most renderers. If your source has no header, add a placeholder row before converting.
Two content cases need a manual look. Because cells are joined with pipes and pipe characters inside a cell are not escaped, any literal `|` in your data will be read as a new column boundary and break alignment, escape it as `\|` first. The space-gap fallback is also a blunt instrument: addresses, prices, or sentences containing double spaces can be split into unintended columns when no clear comma or tab is present.
Finally, quoting and commas-within-fields from spreadsheet exports can confuse a comma-detected table, and very wide tables, while valid Markdown, can be awkward to read in the rendered output. Prefer a clean TSV (copy straight from a spreadsheet, which uses tabs) when your data contains commas.
Checking the table before you ship it
Read the rendered result, not just the raw text. Confirm the column count matches across the header and every row, that the header row is the one you intended, and that no cell got split or merged where a comma, tab, or double space appeared inside the data. Paste it into a Markdown preview (your editor, a GitHub comment box, or the destination page) to see how it actually displays, since a misplaced pipe is far more obvious rendered than in source.
Also scan for cells that contained pipe characters or line breaks; Markdown tables cannot hold a literal newline inside a cell, so multi-line values need to be flattened or rewritten with `<br>` for the renderers that support it. Spot-check the first and last rows and any unusually long cell, which is where splitting issues tend to hide.
For any table headed into official, financial, or legal use, treat the conversion as a formatting step and verify the figures against the original source. This tool rearranges your text, it does not validate or guarantee the underlying numbers, so the final accuracy check stays with you.
Frequently asked questions
Yes. It detects whether your table is comma- or tab-separated and builds the Markdown table accordingly.
Anywhere Markdown tables render — GitHub READMEs, GitLab, many wikis, and Markdown-based docs and notes.
No. The conversion runs in your browser — your text or file is processed on your own device and, on this site, is not uploaded to a server, and we do not intentionally store it.
Tool last reviewed: June 30, 2026 · Report a problem