AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I merge multiple Excel files into one workbook without uploading them?

Open Merge Excel Files, then drop or pick your .xlsx or .xlsm workbooks (up to 50 at once, 100 MB each) and choose how to combine them. Separate sheets keeps every worksheet as its own tab in the output — the safe default that preserves each sheet’s formatting, formulas and column widths. Append rows stacks all the sheets into one long table, auto-aligning columns by header name (so a “name, id, amount” sheet lines up with an “id, name, amount” sheet) or by position, with an optional “Source File” column and one-click de-duplication. Side-by-side places each workbook’s columns next to the others. Drag the files to reorder them, tick or untick individual sheets to include, and a live preview shows the merged result with running row and tab counts. Everything runs in your browser with the ExcelJS library, so no file is ever uploaded; download the finished workbook as merged.xlsx.

  • Three merge modes — Separate sheets (one tab each), Append rows (stack into one table) and Side-by-side (columns next to each other)
  • Append aligns columns by header name even when their order differs, or strictly by position
  • Separate-sheets mode preserves each worksheet’s formatting, formulas and column widths
  • Pick exactly which sheets to include, add a Source File column, and remove duplicate rows
  • Live preview with row and tab counts — 100% in your browser, nothing uploaded

What is

Merge Excel Files

Merging Excel files is the act of combining several .xlsx or .xlsm workbooks into a single spreadsheet, and there are three distinct operations to pick from. Keeping the sheets separate copies every worksheet into one output workbook as its own tab, which preserves formatting, formulas and column widths and is ideal when you simply want many reports gathered into one file. Appending rows is a vertical merge that stacks the data from every sheet into one continuous table — the right choice when the sheets share the same columns, such as monthly exports of one report — where the key decision is whether columns are matched by header name (so differently ordered columns still line up) or by position. A side-by-side merge is a horizontal one, laying each workbook’s columns next to the others by row. Because the Excel format (Office Open XML, the ISO/IEC 29500 .xlsx package) stores typed cells, styles, formulas and multiple sheets, a real merge tool has to parse that structure rather than treat the file as plain text. This tool does all of it in the browser with the ExcelJS library and never uploads your workbooks.

File Tools

Related terms

ExcelXLSXXLSMworkbookworksheetOffice Open XMLExcelJSappend mergevertical mergeside-by-side mergeheader matchingde-duplicateconsolidate spreadsheetsPower QueryVSTACK

Frequently Asked Questions

No. Every workbook is read and merged entirely in your browser with the ExcelJS library — there is no upload, server or account, so your data never leaves your device.

Nothing is uploaded. When you drop or pick files, the tool reads each workbook locally with the browser’s File API, parses it in memory with the bundled ExcelJS library and builds the merged workbook on your device — the cell data never touches a network. There is no server, API, database or tracking in the processing path, so financial models, customer lists or any other sensitive spreadsheet stay on your machine; the tool works offline once cached, and closing the tab discards everything. Even the final .xlsx download is generated in the browser. The only optional network use anywhere on the site is consent-gated advertising, which never sees your data.

Separate sheets keeps each worksheet as its own tab; Append rows stacks all sheets into one table (columns matched by header); Side-by-side places each workbook’s columns next to the others.

Separate sheets is the safe default: every selected worksheet is copied into one output workbook as its own tab, so formatting, formulas and column widths survive and nothing is reshaped — perfect for gathering many reports into a single file. Append rows is a vertical merge that concatenates the data from every sheet into one long table; when the first row is a header you choose whether columns align by header name (so a sheet ordered name, id, amount lines up with one ordered id, name, amount) or strictly by position, and you can add a Source File column and drop duplicate rows. Side-by-side is a horizontal merge that puts each workbook’s columns next to the others, lining rows up by position. A live preview and the output row and tab counts let you confirm the shape before you download.

Separate-sheets mode preserves each sheet’s formatting, formulas and column widths. Append and side-by-side keep cell values and types but flatten styling as they reshape the data into one table.

It depends on the mode. Separate sheets copies each worksheet intact, so number formats, fonts, fills, column widths and in-cell formulas are preserved (you can toggle style preservation in Advanced). Append rows and Side-by-side necessarily rebuild the data into a new layout, so they carry the cell values and their types — numbers stay numbers, dates stay dates, text stays text — but do not attempt to reproduce every source style, and formulas are read as their current values rather than re-pointed at moved cells. If preserving live formulas and exact formatting matters, choose Separate sheets; if you need one flat table to analyse or pivot, choose Append rows.

Up to 50 workbooks per merge, 100 MB each, in .xlsx or .xlsm format. You can also pick exactly which worksheets from each file to include.

You can add up to 50 Excel workbooks at once, each up to 100 MB, in the modern .xlsx or macro-enabled .xlsm format (the older binary .xls is not supported — re-save it as .xlsx first). Every worksheet inside each file is listed so you can tick or untick exactly which sheets take part in the merge, and files can be dragged to reorder them because order controls the sheet sequence and the append/side-by-side layout. The whole job runs in browser memory, so very large workbooks are bounded by your device’s RAM rather than any server limit, and the merged result downloads as a single merged.xlsx.

Detailed Explanation

How It Works

Merging Excel Workbooks in Your Browser

Merge Excel Files combines many .xlsx or .xlsm workbooks into a single spreadsheet without uploading anything. Drop or pick up to 50 files (100 MB each), tick exactly which worksheets take part, and choose how to combine them: Separate sheets keeps every worksheet as its own tab in the output, Append rows stacks the data from all sheets into one continuous table, and Side-by-side lays each workbook’s columns next to the others by row. Every file is parsed in the browser with the ExcelJS library, which reads the Office Open XML package — typed cells, styles, formulas and multiple sheets — rather than treating it as plain text. A live, debounced preview shows the first rows of the merged result along with running output row and tab counts, and files can be dragged to reorder them because order controls the sheet sequence and the append/side-by-side layout.

  • Three modes: Separate sheets (one tab each), Append rows (stack rows) and Side-by-side (stack columns)
  • Up to 50 workbooks, 100 MB each, in .xlsx or .xlsm
  • Per-sheet include/exclude and drag-to-reorder files
  • Parsed with ExcelJS in the browser; live preview with row and tab counts
Use Cases

Gathering Reports, Stacking Monthly Exports, Aligning Columns

Two jobs dominate. The first is simply gathering many workbooks into one file — a folder of per-department or per-client sheets into a single workbook with a tab for each; Separate sheets does this while keeping formatting, formulas and column widths intact. The second is a vertical merge: stacking many exports of the same report, such as twelve monthly sales sheets, into one long table. For that, Append rows aligns columns by header name so a sheet ordered name, id, amount still lines up with one ordered id, name, amount, or by position when you want the original order preserved; an optional Source File column records which workbook each row came from, and de-duplication collapses repeated rows. Side-by-side instead places each workbook’s columns next to the others when you want to compare datasets across the page rather than stack them.

  • Separate sheets gathers many workbooks into one file, one tab per sheet
  • Append rows stacks monthly / per-source exports into a single table
  • Columns align by header name (order-independent) or by position
  • Optional Source File column and duplicate-row removal
Technical Details

How the Merge Engine Works

Each workbook is read with the browser File API and parsed by ExcelJS into an in-memory model of sheets, rows and typed cells. In Separate-sheets mode the tool copies each selected worksheet into the output workbook, carrying values, styles, number formats, column widths and formulas so the tab is a faithful copy. In Append mode it reads the first row of each sheet as a header (when enabled), builds a unified column set either by matching header names across sheets or by column position, then maps every data row into that layout — optionally skipping empty rows, removing exact duplicate rows and adding a Source File column. Side-by-side concatenates every sheet’s columns and aligns rows by index. The merge runs live behind a 250 ms debounce and is race-guarded so rapid option changes never show a stale result, and the finished workbook is serialised back to a real .xlsx with ExcelJS and downloaded as merged.xlsx.

  • ExcelJS parses each file into sheets, rows and typed cells in memory
  • Separate mode copies worksheets with styles, formats, widths and formulas
  • Append builds a unified column set by header name or by position
  • Live merge behind a 250 ms debounce, race-guarded; output serialised to real .xlsx
Limitations

Honest Limitations

Everything runs in browser memory, so there are practical ceilings: up to 50 files, 100 MB per file, and the on-screen preview shows only the first rows of the first output tab (the full workbook still downloads). Only the modern .xlsx and macro-enabled .xlsm formats are accepted — the older binary .xls must be re-saved as .xlsx first, and .xlsm macros themselves are not carried into the merged file. Append and Side-by-side reshape the data, so they keep cell values and types but do not reproduce every source style, and formulas are read as their current values rather than re-pointed at moved cells; if live formulas and exact formatting matter, use Separate sheets. Side-by-side aligns rows purely by position rather than matching a key, so it assumes the sheets are already in a corresponding order, and cross-sheet references between merged workbooks are not rewired.

  • Caps: 50 files, 100 MB each; preview shows the first rows only (full workbook still downloads)
  • .xlsx and .xlsm only — older .xls must be re-saved; macros are not carried over
  • Append / Side-by-side keep values and types but flatten styles; formulas become values
  • Side-by-side aligns by row position, not by a matching key
Privacy & Security

Privacy: Your Workbooks Stay on Your Device

Excel files are often sensitive — financial models, payroll and budgets, customer and order data, research results — and this tool is built so they never leave your machine. Each workbook is read and merged entirely in memory with the ExcelJS library, with no server, upload, database, logging, API or CDN anywhere in the processing path; even the final .xlsx is generated locally. The tool works offline once cached, and closing the tab discards every byte. There is no login and no telemetry, and the only optional network use anywhere on the site is consent-gated advertising, which never sees your data.

  • Read and merged entirely in the browser with ExcelJS
  • No server, upload, database, API or CDN in the processing path
  • Works offline once cached; closing the tab discards everything
  • Only optional network use is consent-gated ads, which never see your data
Merge Excel Files — modes, options and limits
CapabilitySupportNotes
Merge modesSeparate sheets, Append rows, Side-by-sideSeparate keeps one tab per sheet; Append stacks rows; Side-by-side stacks columns
Column matchingBy header name or by position (Append)Header-name matching lines up differently ordered columns; optional Source File column
FormattingPreserved in Separate-sheets modeStyles, number formats, column widths and formulas kept; Append / Side-by-side flatten styling
Sheet controlPer-sheet include / exclude; drag to reorder filesSkip-empty-rows and remove-duplicate-rows options in Advanced
FormatsInput .xlsx / .xlsm; output .xlsxOlder binary .xls unsupported; macros not carried over; built with ExcelJS
Limits & scaleUp to 50 files, 100 MB eachAll in browser memory; live preview of the first rows; 100% client-side, no upload

Merge Excel Files combines up to 50 .xlsx or .xlsm workbooks in the browser via Separate sheets (one tab each), Append rows (stack into one table, columns matched by header name or position) or Side-by-side (columns next to each other). Separate-sheets mode preserves formatting, formulas and column widths; Append offers a Source File column, skip-empty-rows and remove-duplicates; every worksheet can be individually included and files reordered by drag. Parsed and rebuilt with ExcelJS, downloaded as merged.xlsx. Everything runs in browser memory; nothing is uploaded.