CSV Merger combines two or more CSV files into a single table — either by stacking all the rows on top of each other or by joining them on a shared key column. It is for anyone who has split data across several exports and needs one clean file: a marketer reconciling sign-ups with plan data, an analyst combining monthly reports, or a developer stitching together API dumps without opening a spreadsheet. Upload your files or paste the text, choose how to merge, preview the result and export. Nothing is uploaded — the whole process runs in your browser, so even confidential customer lists stay on your machine.
How it works
Each file is parsed with PapaParse, treating the first line as the header row. You then choose a merge mode:
- Stack appends every row from every file into one table. The output columns are the union of all headers, so a column that exists in only one file is kept and left blank for rows from the others. An optional pass removes exact duplicate rows.
- Inner join keeps only rows whose key value appears in both files, combining their columns side by side.
- Left join keeps every row from file A and adds file B’s columns wherever the key matches, leaving them blank otherwise.
- Full join keeps every row from both files, lined up on the key where possible.
For joins you pick the key column in each file — they do not need the same name, so you
can match email in one file against user_email in another. Optional toggles trim
surrounding whitespace and make the key match case-insensitive. When a non-key column name
collides between files, the second file’s copy is renamed with a suffix rather than
overwritten, so no values are lost. With three or more files, joins fold left to right.
Example
Suppose people.csv has id,name,email and plans.csv has id,plan,signup. Choosing a
left join on id keeps all three people and attaches each one’s plan:
| id | name | plan | signup | |
|---|---|---|---|---|
| 1 | Ava Stone | [email protected] | Pro | 2026-01-04 |
| 2 | Ben Cole | [email protected] | ||
| 3 | Cara Diaz | [email protected] | Free | 2026-02-19 |
Ben has no row in plans.csv, so his plan columns are blank — but he is still kept because
a left join preserves every row from file A. Switch to an inner join and Ben drops out;
switch to a full join and the unmatched plan for id 4 is appended too. Press Download
merged CSV to save the combined file, ready to open in Excel, Google Sheets or any database
import. Every figure here is computed locally — no numbers are uploaded or stored.