Join CSV Files Online

Open several CSV or JSON files as tabs, join two on a shared key column, then filter, chart, and export the combined table — all in your browser. No upload, no account, no database required.

Running locally0 bytesuploadedCSV · JSON
What you get

A workspace for many CSVs, not one.

Open every file you are working with as a tab, join the two that share a key, and explore the result — without a database, a spreadsheet, or an upload.

01 / Tabs3 datasets
Open multiple files as tabs.
Drop a folder of CSVs and each opens as its own tab in a single workspace. Every tab is a full table you can search, sort, filter, and clean — switch between them without re-uploading anything.
customers.csvorders.csvrefunds.json+
02 / Joinon customer_id
Join two datasets on a shared key.
Two CSVs that share a column — say customer_id in customers and in orders — get stitched into one table: each order row gains its customer’s columns. It’s a SQL-style join, run entirely in your browser.
customers
customer_idname
C‑18Ada
+
orders
customer_idtotal
C‑18$240
=
joined on customer_id
customer_idnametotal
C‑18Ada$240
innerleftrightouterkeep matches only, or surface unmatched rows
03 / Privacy0 requests
Every file stays in your browser.
Parsing, joining, filtering, and export all happen in this tab — nothing is uploaded, which is what makes the workspace safe for PII, financial, and health data.
NETWORK · 0 REQUESTS
> open csvdiff.app/join-csv-files ····················parsed locally
> add customers.csv ····················parsed locally
> add orders.csv ····················parsed locally
> join on customer_id ····················in memory
> filter · chart · export ····················in memory
04 / And more+4 tools
Everything else in the workspace.
Filter every dataset independently
Each tab keeps its own search, column filters, sort, and hidden columns — switching tabs never loses your view.
status = active·1,204 rows
Chart a column in a click
Turn any column into a bar or distribution chart to eyeball a dataset before you join or export it.
plan▁▃▅▇ chart
Export the combined result
Export any tab — original or joined — back out as CSV or JSON, with the encoding of your choice.
joinedreport.csv
Ask your data in plain English
Type a question about the active dataset and get a filtered view, stat, or chart — computed locally, rows never sent to a model.
“rows missing email”327
Blog

CSV guides.

Walkthroughs on joining, combining, and comparing CSV files online — from picking the right key to replacing a VLOOKUP.

Frequently asked questions

How do I open and compare multiple CSV files at once?+

Drop several CSV or JSON files into the workspace and each opens as its own tab. Switch between them, search and filter any dataset, and join two together on a shared key column — all without leaving the page or uploading anything.

How does joining two datasets work?+

Pick two open datasets and the column they have in common (for example customer_id or email), and the workspace builds a combined table by matching rows on that key — like a SQL join, but entirely in your browser. You can then filter, sort, and export the joined result.

Is my data uploaded anywhere?+

No. Every file is parsed, joined, filtered, and exported entirely in your browser tab and never sent to a server. That makes the workspace safe for sensitive data such as PII, financial records, or health information.

Can I mix CSV and JSON files in one workspace?+

Yes. JSON arrays are flattened into a tabular view alongside your CSVs, so you can open, join, and compare CSV and JSON datasets together and export the result in either format.

How large can the datasets be?+

Comfortably up to roughly 50,000–100,000 rows per dataset on a typical laptop. Tables are virtualised so scrolling stays smooth; joins and filters run on the main thread, so very large files may briefly pause the UI while computing.

100% in your browser

Ready to diff?

Drop your files, see the deltas, export the merge. Takes 30 seconds.