File picking and downloads often fail inside apps. Open this page in your default browser (Chrome, Safari) or on a computer.
Merge Excel Files
Stack monthly order exports, store-by-store sales or several team lists into one sheet. Columns are matched by header name even when the order differs, and you can drop duplicate rows by a key column such as order ID or email. Files with customer data never leave your device — everything runs in your browser.
Choose files and the merged result and a preview appear here.
How to combine multiple Excel files into one
- Pick all the Excel or CSV files at once. Files in another folder can be added with a second pick.
- Every sheet of a workbook is listed. Untick summary or pivot sheets you don't want; hidden and empty sheets start unticked.
- The merge runs right away. Check the row counts and preview, then adjust column or duplicate settings if needed.
- Press Download to save the merged workbook or CSV. The header row has a filter, so you can sort and filter straight away in Excel.
Doing this inside Excel means Power Query (Data → Get Data → From File → From Folder) or copying sheets by hand, where a file with a different column order quietly shifts values into the wrong column. Matching by header name avoids that.
Files with different columns or column order
- By header name (default): columns with the same name line up. Extra spaces and letter case are ignored. A column found in only some files is added at the end and left blank for rows from the other files.
- Same data, different names: if one export says "SKU" and another "Product code", rename one in the Columns list so both share a name and they become one column.
- By position: for files without headers, or identical layouts, column 1 goes with column 1 and so on. The header comes from the first file.
- Skip top rows: for reports with a title line above the header ("October sales report"), enter how many rows to skip. Blank lines after that are skipped automatically.
Removing duplicate rows
| Option | Removes | Typical case |
|---|---|---|
| Every cell matches | Rows identical in every column | The same export downloaded twice, overlapping date ranges |
| Chosen columns match | Rows sharing an order ID, email or employee number | An order exported again after its status changed |
The first row wins. Rows from files higher in the list are kept, so pick the newest file first if you want the latest values. Even with "Keep all" you'll be told how many exact duplicates exist. The source column is ignored when comparing.
Values that stay exactly as they were
- Leading zeros: ZIP codes like
02134, SKUs like00123and phone numbers stay text. IDs longer than 15 digits keep every digit. - Excel formatting: numbers and dates from workbooks keep their cell type and number format (thousands separators, date style). Formulas come through as their calculated values.
- CSV encodings: each CSV's encoding and delimiter (comma, semicolon, tab) are detected separately, so mixed exports from different systems combine cleanly.
- "1,000" vs 1000: CSV text "1,000" and an Excel number 1000 count as the same value when looking for duplicates.
FAQ
Are my files uploaded?
No. Files are read and merged inside your browser and never sent to a server. The only download is the spreadsheet library (SheetJS, about 300 KB) from the official SheetJS CDN, once.
How many files or rows can it handle?
There is no file limit beyond your device's memory; on a computer a few hundred thousand rows take seconds. An Excel sheet holds at most 1,048,576 rows, so save larger results as CSV.
Can I put each file on its own sheet instead?
Not yet — this tool stacks everything into one sheet. To turn the result into CSV or back, use the Excel to CSV converter; to tidy JSON exports, try the JSON formatter.
Sources
- CSV format: RFC 4180
- Excel sheet limit (1,048,576 rows): Microsoft, Excel specifications and limits
- Reading and writing workbooks: SheetJS documentation
Found this useful? Share it
Only the page link is shared. Your inputs and files are never included.