Combining spreadsheets without silently corrupting them
Merging files by hand is copy, paste, repeat — and the failure is quiet. If one export puts the date in column A and another puts it in column C, pasting rows underneath each other mixes dates into the amount column and nothing warns you. The totals still add up; they are just wrong. Matching on the header name instead of the position removes that entire class of mistake.
How the columns are aligned
The first row of each file is read as its header. Names are compared case-insensitively and trimmed, so "Date", "date" and "Date " are the same column. The output keeps the column order of the first file, and any header that only exists in a later file is appended at the end rather than being dropped. A row that has no value for a given column simply leaves it empty.
Why a source column is worth adding
Once rows from twelve files sit in one sheet, "where did this line come from" becomes impossible to answer. The option adds a column with the original file name on every row, which costs nothing and turns an unverifiable pile into something you can filter and audit. It is also what lets you find and remove one bad export afterwards without starting over.
What it does not do
Only the first sheet of each workbook is read: a merge that silently pulled in a hidden "Notes" tab would be worse than one that ignores it. Formulas arrive as their last calculated value, because that is what the file stores. Formatting, colours and column widths are not carried over — what is being merged is data, not presentation. Old .xls files are not supported; save them as .xlsx first, which Excel does in two clicks.
Why it runs in your browser
Spreadsheets worth merging are usually the sensitive ones: payroll, sales by customer, patient lists, inventories with costs. Uploading those to a web service hands over a complete copy of your operation. Here each file is parsed in memory with code you can read, and the only thing that ever leaves is the file you download — onto your own disk.
Before you merge: three minutes that save an hour
Open each file and check that row one really holds the column names. Exports often start with a title, a date range or a blank line, and anything above the header becomes the header — which produces a merge where the columns are named after a report title. Check too that the same thing is named the same way everywhere: "Client", "Customer" and "Cliente" will become three separate columns, which is correct behaviour but probably not what you wanted. Renaming one cell in each file beforehand is far quicker than untangling the result.