Merge CSV files into one Excel workbook
Combine several CSVs into one real .xlsx — one sheet per file, or unioned.
Free. Unlimited. No signup.
Runs entirely in your browser · No upload · No signup · Open the network tab and check
How it works
- 1
Drop your CSV files
Two or more .csv files — drop them together or add them one at a time. Each file's delimiter is detected independently. Nothing uploads.
- 2
Choose the output shape
One sheet per file (tabs, the default — each tab named after its file), or one combined sheet with rows appended under the first file's header.
- 3
Merge and download
One merged.xlsx — a real workbook, not a renamed text file. Numeric-looking values arrive as actual Excel numbers; codes with leading zeros stay text.
A worked example: six monthly exports, one workbook
Your system exports one CSV a month: jan.csv through jun.csv. Drop all six, keep the default mode, and one run produces merged.xlsx with six tabs — jan, feb, … jun — each holding that month's rows with its header, and every amount column arriving as real numbers you can sum straight away.
Prefer one flat sheet for a pivot table? Switch to combined mode and the six months append under January's header instead.
Constraints & edge cases
My files have slightly different headers — what happens in combined mode?
+
Columns are matched by header name, case-insensitively, so "Email" and "email" line up. Columns the first file does not have are dropped — the first file's header defines the output, which is why the file you drop first matters. A file with no header row at all is appended by position. In tabs mode none of this applies: every file keeps its own columns on its own sheet.
Do numbers, dates, and leading zeros survive?
+
Numeric-looking values become real Excel numbers, so sums and filters work immediately. Values with leading zeros — 00420, 0012, product and postal codes — deliberately stay text, so Excel cannot strip the zeros. Date strings stay text in this version: Excel usually recognizes them on the spot, but they are not converted to date cells during the merge.
Can I mix comma- and semicolon-delimited files in one merge?
+
Yes. Each file's delimiter is auto-detected independently, so a comma-delimited export from one system and a semicolon-delimited one from another merge cleanly into the same workbook.
Are there row limits?
+
No row gate — merging is free and unlimited. The practical caps are 100 MB per file at intake and a 50 MB per-file processing guard, plus Excel's own 1,048,576-row sheet ceiling if you union very large files into one sheet.
How to merge CSV files into one Excel workbook, by hand
There are two genuinely different jobs hiding in this one query, and the method depends on which you have: stacking files that share a structure into a single table, or keeping each file as its own tab.
Power Query → From FolderFifteen minutes to set up, then it refreshes on demand
- 1Put every CSV in one folder.
- 2In a new workbook choose Data → Get Data → From File → From Folder and select it.
- 3Click Combine & Transform. Power Query reads the first file as a sample and applies the same shape to the rest.
- 4Set column types explicitly — particularly any ID or ZIP column, which should be Text — then Close & Load.
Where it breaks. This is the right answer for stacking, and worth learning. Two things catch people out: it assumes every file has the same columns in the same order, and a file with an extra column or a different header ordering produces nulls or misaligned data rather than an error. And it unions everything into ONE table — if you wanted one tab per file, this is the wrong route entirely.
Command-line concatenationSeconds, with one specific trap
- 1On Windows: copy *.csv combined.csv from the folder.
- 2On macOS or Linux: cat *.csv > combined.csv.
- 3Open the result in Excel.
Where it breaks. Every file's header row is copied in too, so the merged file has a stray header line between each source file's data. They then sort into the middle of your data and are easy to miss. The result is also still a CSV, so opening it in Excel re-introduces the leading-zero and date-conversion problems.
Open each and copy into tabsA minute or two per file
- 1Open each CSV, right-click its single sheet tab, choose Move or Copy, and send it into your destination workbook.
- 2Rename the tab to match the source filename, since every CSV opens with a sheet named after the file but truncated.
Where it breaks. This is the only manual route that gives you one tab per file. It is also the one that scales worst, and CSV filenames longer than 31 characters get truncated on the way to a sheet name, so tabs stop matching their sources exactly when you have enough files to need the labels.
Windows and Mac
Windows. Power Query's From Folder connector is fully featured here, and copy *.csv is built into the command prompt.
Mac. From Folder is one of the connectors historically missing or limited in Excel for Mac depending on version — check your Get Data menu before planning around it. cat *.csv is built in.
For stacking files with an identical structure, Power Query is genuinely good and worth the fifteen minutes. For one tab per file, or for files whose columns do not line up, every manual route above is a per-file job.
Merge them here instead — free, no signup, and your file never leaves your machine.