CSV ↔ Markdown Converter

Convert CSV to a Markdown table and Markdown tables back to CSV

Direction:

CSV Input

Markdown Table Output

Markdown Table will appear here

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

    Input
    Language,Created by,Paradigm
    Python,Guido van Rossum,Multi-paradigm
    Rust,Graydon Hoare,Systems
    Output
    | 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

    Input
    | Name  | Score |
    |-------|-------|
    | Alice |  98   |
    | Bob   |  87   |
    Output
    Name,Score
    Alice,98
    Bob,87

    The 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

    1. Choose a direction

      Pick CSV → Markdown or Markdown → CSV. The editor updates to reflect the chosen mode.

    2. Paste your data

      Drop a CSV or a GFM table into the input panel. Cells with | or newlines are handled automatically.

    3. 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

    References & standards