CSV ↔ Markdown Converter
Convert CSV to a Markdown table and Markdown tables back to CSV
CSV Input
Markdown Table Output
About
Convert between CSV and GitHub-Flavored Markdown tables in either direction. CSV cells with pipes or newlines are escaped so they don't break the table; converting back un-escapes them and re-emits proper CSV. Everything runs in your browser; nothing is uploaded.
Examples
CSV to GFM table
Language,Created by,Paradigm
Python,Guido van Rossum,Multi-paradigm
Rust,Graydon Hoare,Systems| Language | Created by | Paradigm |
|----------|--------------------|-----------------|
| Python | Guido van Rossum | Multi-paradigm |
| Rust | Graydon Hoare | Systems |The first row becomes column headers; the separator row is auto-generated; cells are padded to align in the source.
GFM table back to CSV
| Name | Score |
|-------|-------|
| Alice | 98 |
| Bob | 87 |Name,Score
Alice,98
Bob,87The separator row and alignment dashes are stripped; padding is removed; pipes are removed and columns are joined with commas.
About this tool
GitHub Flavored Markdown (GFM) tables are a compact way to embed tabular data in documentation, READMEs, and issues without resorting to HTML or an image of a spreadsheet. A GFM table is a pipe-separated row with a mandatory separator row to define alignment, and it renders natively in GitHub, GitLab, Notion, and most Markdown editors.
This converter handles CSV ↔ Markdown in both directions using PapaParse. Cells containing pipes or newlines are escaped so the table structure stays intact. The separator row is generated automatically, and back-conversion un-escapes the pipe characters and re-emits clean CSV.
How to use
Choose a direction
Pick CSV → Markdown or Markdown → CSV. The editor updates to reflect the chosen mode.
Paste your data
Drop a CSV or a GFM table into the input panel. Cells with | or newlines are handled automatically.
Copy the result
Click Copy to grab the converted output, or Download to save it as a file.
Use cases
Embedding a spreadsheet in a README
Copy a few rows from Excel or Google Sheets, convert to GFM, and paste into a GitHub README so the table renders inline without a linked spreadsheet.
Converting a rendered GFM table back to CSV
Paste a table from a GitHub issue or a Notion doc back into CSV format so the data can be imported into a spreadsheet.
Preparing data for documentation
Convert test results or configuration data into a readable Markdown table for inclusion in a changelog or release notes.
Common mistakes
Mistake:Forgetting to escape pipe characters inside a cell.
Fix:If a cell value contains a | character, it must be escaped as \| in the Markdown source, otherwise it will be interpreted as a column separator. The converter handles this automatically when going CSV → Markdown.
Mistake:Having inconsistent column counts.
Fix:Every row must have the same number of cells (columns) as the header row. The separator row (|--|--|) is auto-generated but if a data row is missing a trailing cell, the table will not render correctly on GitHub.
Mistake:Using tabs instead of commas in CSV.
Fix:The converter detects the delimiter automatically, but if a tab-delimited file has inconsistent spacing it may be misdetected as CSV. Use the explicit delimiter option if needed.
Frequently asked questions
Related guides
From Spreadsheet Rows to SQL INSERT Statements
How to turn a CSV export into typed, quoted, and safe SQL INSERT statements — and why the naive string-concatenation approach breaks on quotes, NULLs, and dates.
CSV and Markdown Tables: Bridging Spreadsheets and Documentation
How to convert CSV rows to clean GFM tables, handle pipes and newlines inside cells, and avoid the most common escaping mistakes.
References & standards
Related tools
TOML Validator
Validate TOML and re-emit it as clean, indented JSON
TOML to JSON Converter
Convert TOML to JSON and JSON to TOML in either direction
JSON Lines Converter
Convert JSON Lines (NDJSON) to a JSON array and back
CSV to SQL Converter
Generate SQL INSERT statements from CSV data
JSON Schema Validator
Validate a JSON document against a JSON Schema
Find and Replace Text
Find and replace text with optional regex, case, and multiline matching