Skip to Content
RowSlice

Free Online CSV Merger

Merge Multiple CSV Files into One

Combine multiple CSV files into one: monthly exports, per-store reports or split parts. Columns are lined up by name, even when the files don't match exactly, and the result can be far bigger than Excel could open.

  • Multi-GB files
  • Never uploaded
  • Free, no sign-up

In short: RowSlice's CSV merger turns many CSV files into one, in your browser. It stacks the rows of every file under a single header row and lines columns up by name, so files whose columns were added, dropped or reordered still merge correctly. Each file is read from your disk a few megabytes at a time and nothing is uploaded, so the merged file can hold far more than Excel's 1,048,576 rows; the limits are free disk space and the storage your browser allows one site (about 10 GB in Firefox). It adds rows only: it does not join two files side by side on a shared ID column.

How to Combine CSV Files into One

  1. Select or drag in all the CSV files you want to combine. You can add more from other folders afterwards.
  2. Check the column notice. If some files have different columns, keep By column name selected.
  3. Optionally tick Add a source_file column to record where each row came from.
  4. Press Merge Files and download the merged CSV, named merged-3-files.csv for three files.

Matching Columns by Name

Exports from the same system are rarely identical over time. A column gets added in March, two columns swap places after a software update, or one store's export has an extra field. Pasting such files together lines values up under the wrong headings without any warning. Matching by name avoids that:

FileHeader
january.csvid, name
february.csvname, id, email
Merged resultid, name, email — January's rows have an empty email

Names are compared after removing spaces at the start and end, so email and email count as the same column. Choose By position only when your files have no reliable header, or the headers are spelled differently but the columns are known to be in the same order. Renamed headers, a column that first turns up halfway through the year, and how to check the result are covered in merging CSV files with different columns.

Stacking Rows, Not Joining on a Shared Column

RowSlice's CSV merger puts files one after another: the rows of the second file go under the rows of the first, and so on, so the merged file has as many rows as all the files together. It does not place two files side by side and match their rows on a shared column such as a customer ID, which is the job people usually do with VLOOKUP in Excel. Given a customer list and an order list, you would get the customer rows followed by the order rows, each with blanks under the other file's columns, not each order next to its customer's name.

For that kind of join, use Merge Queries in Excel's Power Query, a database such as DuckDB, or the merge function in Python's pandas library. And when the two files are last month's export and this month's, the question is usually not how to stack them but what moved between them: list the rows added, removed and changed, matched on an ID column.

Other Ways to Merge CSV Files, and Their Catches

MethodOne header row?Columns in a different order?Size ceilingWhere it runs
Command Prompt copyNo, every file's header is repeated in the dataNo, lined up by positionFree disk spaceWindows
PowerShell Import-Csv and Export-CsvYesYes, but columns the first file lacks are dropped unless you list themFree disk space, but slowWindows
cat or awkcat: no. The awk command in our command-line guide: yesNo, lined up by positionFree disk spacemacOS, Linux, or Git Bash on Windows
Excel Power Query, From FolderYesBuilt from one sample file; Microsoft says the files should have the same columns1,048,576 rows if loaded into a sheetExcel for Windows; not in Excel for Mac
RowSlice (this tool)YesYes, matched by nameFree disk space, and your browser's storage limit (about 10 GB in Firefox)Chrome, Edge or Firefox; nothing is uploaded

On Windows, copy *.csv merged.csv in Command Prompt joins files byte by byte. It is fast, but it repeats every file's header row inside the data, can glue the last row of one file onto the first row of the next when a file does not end with a line break, and ignores column order entirely. Our guide on how to merge CSV files in Command Prompt, PowerShell or Bash shows what it and the other usual commands did to our test files, and versions that work. Excel's Power Query can combine a folder of files properly, but the result still has to fit in 1,048,576 rows if you load it into a sheet.

The merger reads each file in small pieces and writes one merged file straight to your disk, so the combined result can be far larger than Excel could open. When all files share the same header and delimiter, rows are copied through exactly as they are, including quotes and leading zeros. A result that large still has to be checked somehow: page through and search it in the CSV viewer, which reads the file without writing one, or check it for broken rows before the import that would reject them.

Last updated .

FAQ

Frequently Asked Questions

How do I combine multiple CSV files into one?

Select all the files at once in the file picker (hold Ctrl or Cmd, or press Ctrl+A inside the folder), or drag them in together. Use Add More Files for files in other folders. Then press Merge Files and download the combined CSV.

What if my files have columns in a different order?

Keep By column name selected. The tool reads the header of every file, builds one list of all the columns, and puts each value under the right heading. If a file does not have a column, those cells are left empty.

Will the header row be repeated in the middle of the merged file?

No. The merged file has a single header row at the top; the header row of each input file is skipped. If your files have no header row, untick First row is a header under Advanced Options and every row is kept.

Can I merge two CSV files on a shared column, like VLOOKUP?

No. RowSlice’s CSV merger stacks files: the rows of each file go under the rows of the one before. It does not match rows from two files on a shared column, such as a customer ID, and put their values side by side. For that kind of join, use Merge Queries in Excel’s Power Query, a JOIN in a database such as DuckDB, or the merge function in Python’s pandas library. If the two files are two versions of the same export and what you want is the difference between them, compare them on a key column instead: the comparison counts the rows added, removed and changed, and writes each set to its own file.

Can I tell which file each row came from?

Yes. Tick Add a source_file column and every row gets the name of the file it came from in an extra last column. This is useful for monthly or per-store exports whose file names carry information that is not inside the data.

Can I merge files that use different delimiters or encodings?

Yes. The delimiter (comma, semicolon, tab or pipe) and encoding of each file are detected separately. The merged file uses the delimiter of the first file and is saved as UTF-8. Detection recognises UTF-8, UTF-16 (only when the file starts with a byte order mark, a short invisible signature) and Windows-1252. A file in any other encoding, such as Shift JIS, is read as Windows-1252 without any warning, and its special characters come out garbled. So check the encoding shown next to each file in the list before you merge, and convert any file in another encoding to UTF-8 on its own first.

Is there a file size limit?

The merger sets no limit on how many files you add or how large they are, and nothing is uploaded. Each file is read from your disk a few megabytes at a time instead of being loaded into memory. The merged file is built in your browser’s private storage on your own disk before you download it, so allow free disk space a little larger than the combined size of the files, and the browser has to let the site store that much; Firefox allows about 10 GB. The tool warns you before it starts if the browser reports too little space.

In which order are the files merged?

In the order shown in the file list, which is the order your system gives the files when you select them; files added with Add More Files go at the end. If order matters, name the files so they sort correctly, for example 2026-01.csv, 2026-02.csv.

Can I remove duplicate rows while merging?

Not in the same step. Merge the files first, then remove duplicate rows from the merged file, keeping either the first copy of each row or the last one, whichever holds the version you want. If you added a source_file column, leave it out of the comparison, because the file name makes copies from different files look different.

Can I merge Excel files or get an .xlsx back?

No. The file picker takes .csv, .tsv, .txt and .tab files, and the result is one CSV file, not an Excel workbook. Save each sheet from Excel as CSV first, then merge those files. To turn the merged CSV into a workbook afterwards, write it out as an .xlsx workbook, which carries on to a second sheet past Excel’s limit of 1,048,576 rows. To keep each CSV file on its own sheet of one workbook instead, see combining CSV files into one Excel workbook, one sheet each.

Guides

More Tools

More CSV Tools

CSV Analyzer

Count the rows, list the columns and profile the values in a CSV too big to open.

CSV Viewer

Page through and search a CSV that is far too large for Excel, without uploading it.

Compare Two CSV Files

See what was added, removed and changed between two exports, matched on an ID column.

Take a Sample from a CSV

Pull the first rows, every Nth row or a random slice out of a huge file for testing.

Sample CSV File Generator

Download realistic test CSV files from 10 rows up to 20 GB, with messy values on request.

Split CSV into Multiple Files

Cut a CSV that Excel refuses to open into multiple files by rows, size or number of parts.

Split CSV by Column Value

One file for every store, region, client or status — straight from a huge export.

Filter CSV Rows

Keep only the rows you need — by value, text match or number range — from a file of any size.

Remove Duplicates from CSV

Delete repeated rows from millions of records, comparing whole rows or chosen columns.

Convert CSV to Excel

Make a real .xlsx file without losing leading zeros, long IDs or turning codes into dates.

Convert CSV to JSON

Turn a CSV into a JSON array or NDJSON, with every value kept exactly as written.

Convert JSON to CSV

Flatten a JSON array or NDJSON export into a spreadsheet-ready CSV.

CSV Validator

Find the broken rows, bad quotes, wrong encoding and duplicate IDs before an import fails.

Convert CSV to UTF-8

Repair garbled characters like é by converting to UTF-8, and switch semicolons to commas.