CSV merger
Paste or open up to six CSV tables. Stack them under each other, lining columns up by header name or by position, or join them side by side. Each input may use its own delimiter; the output uses the one you choose.
Runs in your browser: nothing you enter is sent anywhere.
How to use it
- Paste CSV into the first two boxes, or use Open a file on each. Add more boxes if needed, up to six.
- Choose Stack rows or Side by side.
- Say whether each input starts with a header row, and for stacking whether to match columns by name.
- Copy the merged CSV.
How it works
Every input is read with the RFC 4180 rules, so quoted fields with commas and line breaks survive. When stacking by name the tool collects all header names, then writes each row with the cell from the matching column of its own table. Side by side mode joins row 1 of each table, then row 2, and so on; repeated header names get _2, _3 so they stay distinct.
Example
The two samples stack by name into the header id,name,city. Ada and Grace have no city, so their city cells are empty, and Linus (whose columns came in a different order) keeps his values under the right headers: 3,Linus,Helsinki.
Tips
- Turn the header option off for files without column names; stacking then simply appends all rows.
- To remove repeated records after stacking, pass the result through the CSV deduplicator.
Frequently asked questions
What is the difference between stacking rows and side by side?
Stacking puts the rows of every input under each other, which suits files with the same kind of records, such as monthly exports. Side by side places the tables next to each other, row by row, which suits two lists about the same records in the same order.
How are columns matched when stacking?
With the header option and name matching on, the result has each header once, in the order it first appears, and a cell is left empty when an input lacks that column. With name matching off, columns line up by position and the header of the first input is used.
What if the inputs have different numbers of rows in side-by-side mode?
The shorter table is filled with empty cells so every row of the result has all columns.
Can the inputs use different delimiters?
Yes. Each input is read with its own detected delimiter (comma, semicolon, tab or pipe, whichever is most common in its first line). The merged output uses the delimiter you pick.
Is anything uploaded?
No. Files are read and merged in your browser.