Free tools › Guides
How to chart a CSV without uploading it
Last checked 8 Oct 2026. Items marked date-sensitive can change; follow the source links before relying on them.
Three ways to get a monthly chart from a CSV export without sending customer data to someone else's server, plus a one-minute check for whether an online tool really keeps your file local.
Try it now: the free CSV chart previewer charts your file inside your browser. It has built-in sample files, so you can test it before using real data.
Why not just upload it?
Sales exports often hold personal data. For example, Shopify's order export includes customer Email, Phone, Billing Name and full billing and shipping addresses (Shopify Help: order export CSV structure). Uploading that to a random chart website hands it to a company you know nothing about. Below are three ways to get a chart without doing that.
Option 1: a desktop spreadsheet
Open the CSV in a spreadsheet app installed on your computer, such as LibreOffice Calc or desktop Excel. Make a pivot table with the date grouped by month and your sales column summed, then insert a chart. The file never leaves your machine. The downside is the clicks: date columns often import as text, and UK and US date orders get confused.
Option 2: a browser tool that really runs locally
Many online tools say "your data never leaves your browser". That claim is easy to make, but you can check it yourself in under a minute:
- Watch the network. Open your browser's developer tools (F12, or right-click › Inspect) and go to the Network tab. Load your CSV into the tool. If you see a request (especially a POST) when you add the file, the data is being sent somewhere.
- Read the Content-Security-Policy. In the Network tab, click the page itself and look at the response headers.
connect-src 'none'means scripts on that page can't send data using fetch, XHR or WebSockets. Also look forform-action 'none'(no form posts) and a strictimg-src(no sneaking data out in image URLs). - Go offline. Load the page, turn off Wi-Fi, then add your file. A truly local tool still works.
The CSV chart previewer on this site passes all three. Its policy is default-src 'none'; script-src 'self'; connect-src 'none'; form-action 'none'; img-src 'self' data:. Its automated tests (Chromium, Firefox and WebKit) check that loading a CSV triggers no network request, and that the page's own fetch() is blocked.
Using the previewer
- Open the previewer and drop your
.csvor.tsvfile on it (up to 50 MB). Excel.xlsxfiles aren't read; save as CSV first. - It detects the separator (comma, semicolon, tab), the column types and the date order. It flags problems such as blank lines, duplicate headers, unreadable numbers and rows with the wrong number of fields.
- Pick a date column and a value column for the monthly trend, and a category column for the top-10 breakdown. If dates like 03/04/2026 are being read the wrong way round, switch between day/month (UK) and month/day (US).
Limits, honestly: it draws a monthly line and a top-10 bar chart, nothing more. It doesn't save or export charts (take a screenshot), and it doesn't combine several files.
Option 3: a few lines of Python
If you have Python installed, this prints monthly totals from a CSV without any extra libraries. Change the column names to match your file. Dates here are assumed to start with YYYY-MM.
import csv, collections
totals = collections.defaultdict(float)
with open("export.csv", newline="", encoding="utf-8-sig") as f:
for row in csv.DictReader(f):
if not row["Total"]:
continue # blank (e.g. extra line items)
month = row["Created at"][:7] # "2026-07-03 14:21:55 +0100" → "2026-07"
totals[month] += float(row["Total"])
for month in sorted(totals):
print(month, f"{totals[month]:.2f}")
Need more than a chart?
The Offline KPI Dashboard (paid, on Contra) turns a CSV into a fuller dashboard that also runs offline on your own computer. If you'd rather have it built for you, there's a 5-day spreadsheet-to-dashboard service. Both are made by the same person as this free tool.
Sources
Related
- Free CSV chart previewer (runs in your browser)
- Shopify or Square CSV export to a monthly sales chart
FAQ
Can I make a chart from a CSV without uploading it?
Yes. Use a desktop spreadsheet, a browser tool that processes the file locally, or a short script. With a browser tool, check the Network tab and the Content-Security-Policy to confirm nothing is sent.
How can I tell if an online CSV tool uploads my file?
Open developer tools, go to the Network tab, then load your file. Any new request, especially a POST, means data is leaving. A connect-src 'none' Content-Security-Policy blocks scripts from sending data with fetch or XHR. A tool that still works with Wi-Fi off is processing locally.
Does the free CSV chart previewer store my data?
No. It reads the file in your browser tab, and closing the tab clears it. The page's security policy blocks it from sending network requests, and there are no accounts or analytics scripts.
Can it open Excel files?
No. Save the sheet as CSV first. The previewer detects .xlsx files and says so, rather than showing garbage.
Is there a file size limit?
50 MB. Very large files may be slow, depending on your computer, because everything happens on your device.