CSV Merger

Combine two or more CSV files by stacking rows or joining on a key column.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

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:

idnameemailplansignup
1Ava Stone[email protected]Pro2026-01-04
2Ben Cole[email protected]
3Cara Diaz[email protected]Free2026-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.

Ad placeholder (rectangle)