Merge CSV Files
Append CSV rows by column name or join multiple files on a shared key
Append CSV or join by unique keys. Text is retained; missing union fields are empty. CSV carries no cell types; spreadsheet software may interpret values beginning with characters such as = as formulas. Limits: 10 files, 10 MiB / 20,000 rows each, 30 MiB / 50,000 rows combined, 500 columns, 2,000,000 cells.
A batch is added only after every file validates; selecting again cancels the pending batch. Joins reject empty or duplicate keys. Intersection deliberately excludes unshared columns.
Processed in your browser without saved drafts. Analytics excludes input, filenames, sheet names, column names and raw errors.
About this tool
Combine 2–10 CSV/TSV exports locally with non-empty unique headers after trimming. Append aligns each source’s own columns in file/row order; union retains every column and fills missing fields with empty text, while intersection intentionally excludes unshared columns. Joins use a shared unique key with left, inner or full semantics, case sensitivity and optional edge-space trimming. Empty or duplicate normalized keys stop the join; colliding columns receive globally unique filename prefixes. Batches validate before being added. Preview: 30 rows by 20 columns; copying and downloading include the complete result. CSV field text is retained without formula execution or added prefixes. Limits: 10 MiB/20,000 rows per file, 30 MiB/50,000 rows combined, 500 columns, 2,000,000 cells and 32,767 UTF-16 code units per cell.
Scenario Recipes
Join customer exports without overwriting status columns
Goal: Keep unique key matches and preserve each source’s non-key values.
- Add two to ten CSV files with non-empty, unique headers after trimming. Select encoding before upload. A batch is added only when every file and combined limit validates; a new selection cancels an unfinished batch.
- Choose Join by key and a shared key. Left retains the first file’s keys; inner retains keys present in every file; full retains the ordered union. Matching is case-sensitive, with optional edge-space trimming. Empty or duplicate normalized keys stop the join.
- Check the preview for filename-prefixed conflicting columns such as orders.status. Copy or download the complete CSV. Use Append with union when rows should be stacked and every column retained.
Result: CSV with stable row order and globally unique output columns. Intersection is an explicit choice to omit unshared columns; it is not a lossless merge of every field.
Failure Clinic (Common Pitfalls)
Missing constructor or __proto__ fields contain unexpected object text
Cause: Property inheritance must not supply values for absent CSV fields.
Fix: This merger aligns ordered cells by each source’s own header index. Missing union cells are empty strings, including prototype-like column names.
A many-to-many relationship is treated as one row per key
Cause: Duplicate normalized keys make a unique-key join ambiguous; choosing one would discard records.
Fix: The tool rejects duplicate and empty keys. Aggregate or intentionally deduplicate in the source system. Disabling edge-space trimming changes key comparisons but keeps case sensitivity.
Opening CSV in spreadsheet software changes a value into a formula
Cause: CSV contains text fields, not an XLSX cell-type declaration. Consumer applications decide how to interpret values such as =1+2.
Fix: The download preserves field text without inserting prefixes. Use controlled text import settings or convert to XLSX with text cells when the receiving workflow requires that behavior. No formula is executed by this merger.
Production Snippets
Prototype-like column names remain ordinary data
csv
First file:
id,a
1,x
Second file:
id,constructor,__proto__
2,y,z
Union result:
id,a,constructor,__proto__
1,x,,
2,,y,zFrequently Asked Questions
Missing constructor or __proto__ fields contain unexpected object text?
Property inheritance must not supply values for absent CSV fields. This merger aligns ordered cells by each source’s own header index. Missing union cells are empty strings, including prototype-like column names.
A many-to-many relationship is treated as one row per key?
Duplicate normalized keys make a unique-key join ambiguous; choosing one would discard records. The tool rejects duplicate and empty keys. Aggregate or intentionally deduplicate in the source system. Disabling edge-space trimming changes key comparisons but keeps case sensitivity.
Opening CSV in spreadsheet software changes a value into a formula?
CSV contains text fields, not an XLSX cell-type declaration. Consumer applications decide how to interpret values such as =1+2. The download preserves field text without inserting prefixes. Use controlled text import settings or convert to XLSX with text cells when the receiving workflow requires that behavior. No formula is executed by this merger.
How do I use this converter?
Add two to ten CSV files with non-empty, unique headers after trimming. Select encoding before upload. A batch is added only when every file and combined limit validates; a new selection cancels an unfinished batch. Choose Join by key and a shared key. Left retains the first file’s keys; inner retains keys present in every file; full retains the ordered union. Matching is case-sensitive, with optional edge-space trimming. Empty or duplicate normalized keys stop the join. Check the preview for filename-prefixed conflicting columns such as orders.status. Copy or download the complete CSV. Use Append with union when rows should be stacked and every column retained.
Is my input uploaded or saved as a draft?
Processing runs in this browser. Input is not uploaded or saved as a draft; analytics excludes values and filenames.
Keep browsing