CSV Merger for Multiple Exports in One File

Monthly exports, per-region spreadsheets, and one-off dumps from different systems end up as stacks of CSV files that need to become a single table. The catch is headers: one export carries a total column, another carries region, and a third spells the same value differently. This page reads every file you pick, lines the columns up under a header mode you choose, and returns one CSV ready to download.

The files are read inside this browser tab. Customer lists and internal figures stay on your machine, which is what makes the merge work for data that cannot be handed to an online converter.

Merge Multiple CSV Files

Files, headers, and separators The files stay in this tab.

Choose CSV files

Pick two or more files. Names and sizes appear below the input as they are chosen.

Merge options

    Merged output

    How It Works

    1. Pick the CSV files. Choose two or more files with the file input. Their names and sizes appear in the list under the input as soon as the selection changes.
    2. Choose how headers line up. Union keeps every column from every file, intersection keeps only the columns every file shares, and first follows the header of the first file and drops the rest. The input delimiter starts on auto, which counts separators in the first line of each file.
    3. Press Merge Files. Each file is parsed, rows are placed under the matching column names, and cells with no value come through empty. Columns that were absent from a file are counted and named in the issue list.
    4. Copy or download the table. The merged CSV lands in the output box, and the download link points at a local copy named merged.csv. The summary line reports the file count, rows, columns, and how many cells were filled along the way.

    Before and After

    Before (two exports, different headers)
    orders_jan.csv
    id,name,total
    1,Ada,12.50
    2,Grace,9.00
    
    orders_feb.csv
    id,name,region
    3,Alan,North
    4,Katherine,South
    After (union mode, comma output)
    id,name,total,region
    1,Ada,12.50,
    2,Grace,9.00,
    3,Alan,,North
    4,Katherine,,South

    Use Cases

    Developer Production Workflow
    Seed data from three dump files Weekly store exports joined for a dashboard Signup lists from two forms combined
    Union mode keeps total and region Intersection keeps the shared columns only Trim on removes stray spaces from cells
    Empty cells counted in the summary Blank separator rows dropped per file Semicolon output for a matching locale
    Everything merged inside the tab Issues name the file and the column Download link prepared after each run

    Common Mistakes

    • Turning off first row is a header when the files do carry one. The header words become ordinary data rows and the row total grows by one per file; switch the checkbox back and run the merge again.
    • Picking intersection when the extra columns were meant to stay. Intersection keeps only columns every file carries and drops the rest, with each dropped column named in the issue list. Union is the mode that keeps everything.
    • Letting auto detection guess on odd files. Detection counts separators in the first non-empty line, so a file whose first line holds a single value can point the parser at the wrong separator; set the input delimiter by hand in that case.
    • Merging semicolon exports without changing the setting. Spreadsheets saved with a regional separator need semicolon chosen for input, otherwise the whole line arrives as one cell and the column count collapses.

    Best Practices

    • Start with union and auto detection to see the whole picture, then narrow the header mode once the columns of each file are known.
    • Keep trim cells on for exports that pad values with spaces, and keep drop empty rows on for files that carry blank separator lines between record groups.
    • Read the issue list after every run. It names the files whose columns were filled or dropped, which is where header disagreements show up first.
    • Set the output delimiter the destination expects. Comma is the common choice, while semicolon suits spreadsheet software configured for some European locales.

    Frequently Asked Questions

    What happens when the files have different headers?

    Union mode builds one header from every column name it sees across the files and fills cells where a file lacks a column. Intersection keeps only the columns that appear in every file and drops the rest, naming each dropped column in the issue list. First mode takes the header of the first file and drops columns the later files add. The mode is picked per run, so comparing the outcomes is a matter of switching the setting.

    Where do the missing cells go?

    A row from a file that lacks a column gets an empty cell in that column, in the position the merged header gives it. Those cells are counted, and the summary line reports the total as empty cells filled. Each output row keeps the same cell count as the header, so the table stays rectangular even when the sources disagree.

    How is the delimiter detected?

    Auto mode looks at the first non-empty line of each file and counts separators outside quotes among comma, semicolon, tab, and pipe. The separator with the highest count wins for that file. Files are detected one at a time, so a comma export and a semicolon export can join in the same run. Set the input delimiter by hand when a first line is atypical, such as a single-column heading.

    How are header rows handled?

    With the checkbox on, the first row of each file is read as the column names for that file and is not counted in the row total. With it off, columns take positional names like col1 and col2, and every row counts as data. Blank header cells get a positional name too, and duplicate names within one file are renamed with a number so no column is lost.

    How large can the files be?

    Every selected file is read into memory at once, so the practical limit is what your browser tab and machine can hold. A handful of exports with tens of thousands of rows each is routine; sources that run past several hundred megabytes can slow the tab or exhaust memory. Split very large files into parts first when a merge takes too long.

    Does my data leave the browser?

    No. Files are read with the File API, rows are parsed in the tab, and the merged result comes back as text plus a local download link. Nothing is posted to a server, and the page keeps no copy after the tab closes. That is what allows the merge for customer lists and internal figures that cannot be uploaded to a converter.

    Can I choose the output delimiter?

    Yes. The output list covers comma, semicolon, tab, and pipe, and the choice applies to the header row and every data row. Cells that contain the chosen separator, a quote character, or a line break are wrapped in quotes automatically, so the output stays parseable after the download.