Merge and join CSV
Stack several CSVs or join them by a key column, like a SQL join, without uploading anything.
The delimiter is auto-detected (comma, semicolon, tab or pipe).
The join is an in-memory hash join on the selected key. With INNER, a row may repeat if the key appears multiple times in the other file. CSV files never leave your browser.
Built by
Miguel Ángel Colorado Marin (MACM)
Built by
Miguel Ángel Colorado Marin (MACM)
Full-Stack Developer · Guadalajara, España
I develop web apps, digital tools and full projects — from design to deployment.
Having your data spread across several CSVs (monthly exports, one file per office, a customers table and an orders table) forces you to combine them, and doing it by hand in a spreadsheet is where mismatches creep in. This tool covers both scenarios: stacking several files into one while aligning their headers, or joining them by a shared column the way a SQL JOIN would. The parser follows the RFC 4180 rules (quoted fields with embedded commas or line breaks) and detects the delimiter on its own, so there is nothing to reconfigure between exports from different programs.
Features
- ✓Stack several CSVs into one with unified headers (missing columns filled empty)
- ✓Join by key column with INNER, LEFT, RIGHT and FULL OUTER
- ✓Automatic delimiter detection (comma, semicolon, tab or pipe)
- ✓RFC 4180-compliant parser: quotes, embedded commas and line breaks inside fields
- ✓Table preview and download of the result as CSV
How do I merge or join CSV files?
- 1
Choose the mode
Merge (stack) to add rows, or Join to cross two files by a column.
- 2
Load the CSVs
Select one or more files; the delimiter is detected automatically.
- 3
Define the keys if joining
Choose the key column of each file and the join type (INNER, LEFT, RIGHT or FULL).
- 4
Download the result
Review the preview and download the combined CSV.
Frequently asked questions
What is the difference between merging and joining?
Merging (stacking) adds the rows of all files one under another, aligning columns by name: what you need to bring together the same data from several periods or offices. Joining crosses two files by a key column, adding one file's columns to the other: what you would use to attach a customer's email to their order.
What if the CSVs have different columns?
In merge mode the union of all headers is taken and cells missing in a file are left empty. That way no column is lost even if the files are not identical.
Can the join duplicate rows?
Yes. If a key appears multiple times in the right file, each match produces a row, exactly like a SQL JOIN. This is the correct behavior for a one-to-many relationship.
Is my data uploaded to a server?
No. Files are read and processed entirely in your browser. There is no upload and no data storage.
Related tools
Embed CSV Merger and Join on your site
Add CSV Merger and Join to any web page with a simple iframe. Free, with attribution to miguelacm.es.
<iframe
src="https://miguelacm.es/embed/csv-merger"
width="100%"
height="700"
frameborder="0"
title="CSV Merger and Join — miguelacm.es"
></iframe>View embed in new tab →