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
- Select or drag in all the CSV files you want to combine. You can add more from other folders afterwards.
- Check the column notice. If some files have different columns, keep By column name selected.
- Optionally tick Add a source_file column to record where each row came from.
- Press Merge Files and download the merged CSV, named
merged-3-files.csvfor 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:
| File | Header |
|---|---|
january.csv | id, name |
february.csv | name, id, email |
| Merged result | id, 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
| Method | One header row? | Columns in a different order? | Size ceiling | Where it runs |
|---|---|---|---|---|
Command Prompt copy | No, every file's header is repeated in the data | No, lined up by position | Free disk space | Windows |
PowerShell Import-Csv and Export-Csv | Yes | Yes, but columns the first file lacks are dropped unless you list them | Free disk space, but slow | Windows |
cat or awk | cat: no. The awk command in our command-line guide: yes | No, lined up by position | Free disk space | macOS, Linux, or Git Bash on Windows |
| Excel Power Query, From Folder | Yes | Built from one sample file; Microsoft says the files should have the same columns | 1,048,576 rows if loaded into a sheet | Excel for Windows; not in Excel for Mac |
| RowSlice (this tool) | Yes | Yes, matched by name | Free 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 .