CSV to Mermaid chart converter

Paste CSV and turn it into a Mermaid pie chart, bar or line chart, or Gantt chart. The tool guesses which columns to use; change them if it guessed wrong. Free and runs in your browser.

xychart-beta
    x-axis ["Jan", "Feb", "Mar", "Apr"]
    y-axis "Revenue"
    bar [4200, 5100, 6100, 5800]
Loading the tool…

How to do it

  1. Step 1

    Paste your data

    Paste CSV with a header row, or upload a .csv file.

  2. Step 2

    Choose a chart

    Pick pie, bar or line, or Gantt.

  3. Step 3

    Map the columns

    Check which columns are used for labels, values or dates.

  4. Step 4

    Use it

    Copy the Mermaid, or open it in the editor to export it.

Why chart in Mermaid

A chart written in Mermaid sits in a README or a wiki page as text, renders on GitHub and GitLab, and changes in a pull request like any other line. That suits project plans and small reports that change often and should not live in a slide nobody can find.

How the columns are guessed

Columns where every cell is a date suggest a Gantt chart; several numeric columns suggest a bar chart; otherwise it starts with a pie. The first text column becomes the labels.

What this does not do

  • One chart per conversion; split the data if you need several.
  • XY charts get crowded beyond about 40 points; group the data first.
  • Gantt dependencies (after another task) are not read from the CSV; add them in the editor.

Frequently asked questions

Which charts can I make?

Pie charts take a label column and one value column. Bar and line charts (Mermaid's XY chart) take a label column and one or more numeric series. Gantt charts take a task column, a start date, an end date or a number of days, and an optional section column.

Can I paste straight from a spreadsheet?

Yes. Export or copy the range as CSV from Excel, Google Sheets or Numbers and paste it. Commas, semicolons, tabs and pipes are all recognised as separators, and quoted cells can contain separators and line breaks.

What date formats does the Gantt chart understand?

ISO dates (2026-10-27) work best. Day-first dates like 27/10/2026 and month-first dates like 10/27/2026 are recognised when the day is above 12; otherwise month-first is assumed. In the end column, a plain number is read as a duration in days.

What if a value is not a clean number?

Numbers can include thousands separators, currency symbols and percent signs. Rows without a usable number are skipped and listed in the notes below the result.

More Mermaid tools

All tools