CSV Merger
Combine multiple CSV files into one, matching columns by header name.
Everything happens locally in your browser — files are never uploaded anywhere.
Combine multiple CSV files into a single file, matching columns by header name rather than position — so files with columns in a different order, or with some columns missing, still merge correctly instead of scrambling your data.
Handy for merging exports from different systems, monthly report files, or spreadsheets collected from multiple people into one consolidated file.
Why matching by header rather than position matters
Concatenating CSV files by simply stacking their rows works only if every file has identical columns in an identical order. In practice they never do — one export has an extra column, another renamed a field, a third reordered them.
Stacking those blindly produces a file that looks fine and is quietly corrupt: email addresses in the phone column, dates in the name column. Matching by header name means a file missing a column contributes blanks for those rows rather than shifting everything one place left.
Before you merge
- Open each file and confirm the header row is actually the first row — exports sometimes prepend a title or a blank line.
- Check for headers that mean the same thing but are spelled differently: 'Email', 'email', 'E-mail' and 'Email Address' are four distinct columns to any merge tool.
- Watch for trailing spaces in header names, which are invisible and will split a column in two.
- Confirm every file uses the same delimiter. Semicolon-separated exports are common in European locales.
- Check the encoding. A UTF-8 file merged with a Windows-1252 file produces mojibake in the accented characters.
- Merge, then spot-check the first and last few rows of each source in the output before relying on it.
After merging
- Row count should equal the sum of the source rows, minus one header per file. If it doesn't, something was parsed as a multi-line value.
- Deduplicate if the same record can appear in more than one source — merging does not deduplicate on its own.
- Consider adding a 'source file' column before merging if you'll need to trace rows back later.
- Blank cells in the output are expected wherever a source file lacked that column — they aren't lost data.
Frequently asked questions
- What happens if the CSVs have different columns?
- Columns are matched by header name across all files; any column missing from a particular file is left blank for those rows rather than causing a misalignment.
- Does column order matter across the files?
- No — because matching is done by header name, not position, files can have their columns in any order and still merge correctly.
- Are my files uploaded anywhere?
- No — merging happens locally in your browser, so your data stays on your device.
- Are headers matched case-sensitively?
- Treat them as case-sensitive to be safe — 'Email' and 'email' can end up as separate columns. Normalise your headers before merging if the sources are inconsistent.
- Does merging remove duplicate rows?
- No. Merging combines rows without judging them. Deduplicate afterwards if the same record can appear in more than one source file.
- Why does my output have more rows than expected?
- Usually a quoted value containing a newline was parsed as multiple rows, or a file had a stray blank line. Check the source files for unescaped quotes.