CSV to chart

Paste a CSV (or cells from a spreadsheet) and the chart draws as you type. Pick a type, set titles and number formats, then download an SVG or a PNG.

Your data

Data format

Paste from a spreadsheet, a CSV file or an API response. The first row (or the keys) name the columns.

4 rows, 4 columns. Comma-separated, first row is the header.

Try a sample:
Reading options

Your data stays in your browser. Nothing you paste is uploaded. Share links carry the data after the #, which browsers never send to a server.

Chart

800 × 400 px

Chart type
Series
Revenue by regionGrouped bar chart: Quarterly, in US dollars (sample data). 4 categories, from Q1 2026 to Q4 2026. North America: lowest $412K (Q1 2026), highest $563K (Q4 2026). Europe: lowest $298K (Q1 2026), highest $382K (Q4 2026). Asia Pacific: lowest $151K (Q1 2026), highest $270K (Q4 2026). Values: Q1 2026: North America $412K, Europe $298K, Asia Pacific $151K; Q2 2026: North America $448K, Europe $321K, Asia Pacific $187K; Q3 2026: North America $501K, Europe $339K, Asia Pacific $226K; Q4 2026: North America $563K, Europe $382K, Asia Pacific $270K.Revenue by regionQuarterly, in US dollars (sample data)North AmericaEuropeAsia Pacific$0$100K$200K$300K$400K$500K$600KQ1 2026Q2 2026Q3 2026Q4 2026
Size

Export

PNG resolution

Settings

Columns
Series to chart
Titles
Numbers
Style

What the CSV can look like

Real files are messy. These are the things the reader understands without any setup.

Separators

Commas, semicolons, tabs (pasted from a spreadsheet) or pipes. The builder detects which one from the first lines; Reading options lets you choose.

Month;Revenue Jan;1.250,50
Header row

The first row names the columns when it holds text above columns of numbers. Years work as names too. If there is no header, columns are numbered.

Quotes

Standard CSV quoting (RFC 4180): wrap a value in double quotes to include commas or line breaks, and double a quote inside it.

"Acme, Inc.","He said ""ship it"""
Numbers

Thousands separators (comma, period, space or apostrophe) and a decimal point or comma. The decimal mark is decided once for the whole file.

1,234.5 1.234,5 1 234,5 1’234.5
Percentages

A % sign is understood, and the chart’s values are then written as percentages.

99.95%
Money

Currency symbols before or after the number ($ € £ ¥ ₹ and more) or a code. When one currency runs through the series, the chart uses it.

$1,200 1 200 € USD 1200
Negatives and shorthand

Minus signs, accounting parentheses and K, M or B suffixes.

-12 (12) 1.2K 3M
Dates

ISO 8601 dates are labelled nicely, and on line and area charts they sit at their real distance apart.

2026-07-06 2026-07 2026-07-06T09:30
Blanks

Empty cells and NA, N/A, null or a dash become gaps, not zeros.

Common problems, and the fix

revenue.csv
Quarter,North America,Europe,Asia Pacific
Q1 2026,"$412,000","$298,000","$151,000"
Q2 2026,"$448,000","$321,000","$187,000"
Q3 2026,"$501,000","$339,000","$226,000"
Q4 2026,"$563,000","$382,000","$270,000"
Dates like 07/06/2026

Read as text, in the order given: we won’t guess whether that is July or June. Rewrite them as 2026-07-06 for real spacing on the time axis.

Units inside cells

“12 kg” or “3 hrs” is text, not a number. Put the unit in the column name or the value axis title instead.

Spreadsheet extras

Title rows above the header, totals rows and notes under the table all get charted. Delete them before pasting, or the total becomes the tallest bar.

Numbers that are names

ZIP codes, years and IDs are numbers that label things. Choose that column under Columns, Labels from.

Too many categories

With many bars on a small chart, some labels are hidden so the rest stay readable. A horizontal bar chart has room for long names and more rows.

Early access

Get a hosted link

Some places can’t run a chart script or take a file upload: email, Slack messages, PDFs, pull request descriptions. A hosted link is a plain image URL that draws your chart when it’s opened.

What it will do:

  • An image URL per chart. Put it in an <img> tag or a Markdown image and the chart shows up, SVG or PNG.
  • Signed. Nobody can change the chart by editing the link.
  • Cached close to readers, so a newsletter sent to thousands loads quickly.
  • The same renderer as this builder, so the link and the file you download look the same.

Not built yet: we’re checking that enough people want it first. Leave your email and we’ll tell you when it opens. Nothing else.

You confirm your address first. Then one email when hosted links open.

What a hosted link could look like (format not final)
![Weekly signups](https://boringutils.com/c/…/weekly-signups.png)

<img src="https://boringutils.com/c/…/weekly-signups.png"
     width="600" height="300" alt="Weekly signups, July to September">

Questions

Short answers to the usual ones.

Anything else: hello@boringutils.com

Is my data uploaded anywhere?

No. The chart is drawn in your browser, and nothing you paste is sent to us or anyone else.

Share links keep the data after the # in the address. Browsers never send that part to a server, so the link is private to whoever you give it to.

Does it work with semicolon-separated or European CSV files?

Yes. Semicolons are detected, and so are decimal commas (1.234,5). When a number like 1,234 could be read either way, a semicolon-separated file reads it as 1.234 and a comma-separated one as 1,234. You can set the separator yourself under Reading options.

How do I chart only some of the columns?

Under Settings, Columns, untick the series you don’t want and pick which column holds the labels. Up to 8 series fit on one chart, so each keeps a color you can tell apart.

How do I make a pie chart from a CSV?

Use two columns, names and values, and choose Pie or Donut. Slices start at twelve o’clock in the order of your rows. Past 6 slices, the smallest ones are grouped as “Other” so the chart stays readable.

How large can the CSV be?

The builder reads up to 5,000 rows and 50 columns and charts up to 8 series. It stays quick at that size. For more, summarize the data first: a chart with 5,000 bars would not be readable anyway.

Can I paste straight from Excel or Google Sheets?

Yes. Copying cells gives tab-separated text, which the builder detects. Formatted numbers like $1,200 or 12% are understood as they are.