Merge multiple CSV files into one
Combine exports whose columns are in different orders, with different encodings and the odd extra field, into one clean CSV.
Drop your files here
.csv, .tsv, .txt · up to 300 MB
How to Merge Files
- 1
Drop two or more CSV files
Up to twenty files at once. Each one's encoding and separator are detected independently, so a mixed set is fine.
- 2
Check how columns were matched
By name is the default and tolerates different orders. Exact demands identical headers; by position ignores names entirely.
- 3
Merge and download the combined CSV
One file comes back, not an archive, with the delimiter and encoding your next system expects.
Three ways to line up columns, and when each is right
Matching by name is what people mean by merging: the March export lists id, name, email and the April one lists name, email, id, and both should end up in the same three columns. Comparison ignores case and surrounding spaces, so " ID " and "id" are one column. Exact matching is for when identical structure is a requirement rather than a hope: a mismatch stops the merge and names the missing and extra columns per file, which is precisely what you want before feeding a regulator's importer. By position ignores headers entirely and is the right choice for files that have none, or whose headers are unreliable; a differing column count then stops the merge and names both numbers.
A new column in one file is not an error
The most common real-world case is that somebody added a field halfway through the year. Under name matching that column is appended to the end of the canonical list and the rows that predate it get an empty value, with a notice telling you which column arrived late. That is almost always better than refusing to merge, and it is reversible: you can see the column in the result and delete it. Files that turn out to have no data rows at all are skipped and counted rather than aborting the run.
Mixed encodings, and one safety measure
Each input is examined on its own, so a Windows-1251 export from an accounting system merges cleanly with a UTF-8 export from a web app and the Cyrillic in both survives. The output encoding is yours to choose, with UTF-8 plus BOM as the default so Excel opens the result correctly. One thing is added deliberately: any value that begins with =, +, - or @ is prefixed with an apostrophe, because spreadsheets execute such values as formulas and a merged file made from data you did not write is exactly the situation formula injection was invented for.
All of it happens in this tab
Every file is read, parsed and combined locally in your browser. Nothing is uploaded, which matters because merging is usually the step where several partial customer or transaction exports come together in one place.
Frequently asked questions
What if the files have different columns?
Under the default name matching, the result contains the union of all columns in order of first appearance, and rows from files that lack a column get an empty value there. A notice lists any column that appeared only in a later file.
How do I remove duplicate rows?
Turn on the deduplicate option. Rows are compared across all their values, the first occurrence of each is kept, and the number of discarded duplicates is reported so you can sanity-check the result.
Can I merge files with different encodings?
Yes. Encoding is detected per file, byte order mark first, then a strict UTF-8 check, then a heuristic between Windows-1251 and Windows-1252, so a mixed set merges without garbled text.
What does the __source_file column do?
When enabled it becomes the first column and holds the name of the file each row came from, without its extension. It is the simplest way to trace a suspicious row back to its origin after the merge.
In what order do the files appear in the result?
By default in the order you added them. Switching to filename order sorts them naturally, so file2 comes before file10 rather than after it.
What if one of my files is actually an Excel file?
A file whose contents start with the ZIP signature is an XLSX renamed to .csv, and the merge stops with a message naming it and a link to the Excel-to-CSV converter.
Is anything uploaded?
No. Reading, parsing, matching and writing all happen in your browser, and the combined file is produced locally without any server involvement.