Merge CSV Files
Append CSV rows by column name or join multiple files on a shared key
About this tool
Merge CSV Files combines two to ten CSV or TSV exports without uploading them. Append mode stacks rows in file order and aligns values by exact header name, with a union option that keeps every column or an intersection option that keeps only columns shared by every file. An optional source_file column records where each row came from. Join mode uses the first file as the left-side base and matches all files on a column name they share; choose left, inner, or full join semantics. Matching is case-sensitive, with optional trimming at the two edges of key values. To prevent silent data loss, a join stops when any source contains an empty key or the same normalized key more than once. Non-key columns that would overwrite an existing name receive a prefix derived from their source filename. The result includes row and column counts, a 100-row preview, one-click copy, and CSV download. Each file is limited to 10 MB and 20,000 data rows, with a 30 MB and 50,000-row combined limit to keep browser processing predictable.
Frequently Asked Questions
What is the difference between Append and Join by key?
Append adds rows vertically and aligns cells by header name. Join adds columns horizontally by matching a shared key value across files, similar to a database join.
How do Union and Intersection columns work in Append mode?
Union keeps every header found in any file and leaves missing cells empty. Intersection keeps only headers present in every uploaded file. Row and file order remain unchanged.
What do left, inner, and full joins keep?
Left keeps all keys from file 1, inner keeps only keys found in every file, and full keeps keys found in any file. File 1 is always the base schema for a left join.
What happens when a file contains duplicate keys?
The join stops and identifies the file and duplicate value. Automatically choosing one duplicate could discard or multiply records, so you must deduplicate the source intentionally first.
How are columns with the same name handled during a join?
The first file keeps its original headers. A later non-key column that collides receives a source filename prefix, and another suffix is added if that generated name is also already used.
Are key matches case-sensitive, and are spaces ignored?
Matching is case-sensitive. The default option trims whitespace only at the beginning and end of key values; disable it when those edge spaces are meaningful identifiers.
What are the file limits, and is data uploaded?
You can use 2–10 files, up to 10 MB and 20,000 rows each, with 30 MB and 50,000 rows combined. Parsing and merging happen entirely in your browser, with no upload.
Keep browsing