Merge CSV files
The safe way to join exports that no longer match.
Drop files here
or click to choose from your deviceAccepted: CSV, TSV, TXT
Up to 3 files per runUp to 20 MB per file10 runs per dayRemove limits with Pro✓ Works offline
Your files stay on your device
This tool runs entirely in your browser. Nothing is uploaded, nothing is stored, and you can even turn off your internet connection before you start.
How it works
- Add two or more CSV files. Commas, semicolons and tabs are all read; you do not have to say which.
- Leave the header switch on unless the files genuinely have no header row.
- Turn on the source column if you will need to know later where a row came from.
- Merge and download.
Frequently asked questions
- Why not just concatenate them?
- Because that is how you get a file that looks right and is wrong. Two exports of the same report a month apart often have a column added or moved; joined by position, every value after that point lands under the wrong heading and nothing complains. Here the columns are matched by name, and the union of all the headers becomes the output.
- What if one file has a column the others do not?
- It becomes a column in the output and the rows from the other files are blank in it, rather than shifted. The note afterwards tells you how many columns that happened to, so a surprise is visible.
- Can I mix a semicolon file with a comma one?
- Yes. The separator is worked out per file by counting them outside quotes, so an export from a German Excel and one from a script join without anything being said. You choose the separator for the output separately.
- My first column is called id and will not match.
- That is a byte-order mark, invisible and attached to the first header. It is stripped on the way in, so the column matches the same one in a file without it — which is the whole reason that particular join usually fails.
- Why offer to add a byte-order mark on the way out?
- Because Excel on Windows reads a UTF-8 CSV as the local codepage unless one is there, which is what turns accented names into mojibake. If the file is for Excel, turn it on; if it is for a script, leave it off.
- What are the free limits?
- Three files per run, 20 MB per file and 10 runs a day. Pro removes all three.
Related tools
▦ CSV to Excel A proper .xlsx from your CSV, written on your device. ▦ Excel to CSV Your workbook as CSV files, read on your device. ▦ Split a workbook into sheets One workbook in, one file per sheet out. ⇄ CSV to JSON Turn spreadsheet exports into JSON for APIs, scripts and config files, without your data leaving the page.