Toolvore

Merge Excel Files

Merge 2–10 XLSX files as separate tabs or header-aligned rows with source lineage, all in your browser.

This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.

Merge 2–10 local XLSX files into separate data tabs or one header-aligned table with explicit source lineage and bounded exact-value handling.

How to use it

  1. 1Choose 2–10 unencrypted, data-only XLSX files within the displayed compressed and expanded limits.
  2. 2Keep every worksheet as a tab, or append one selected sheet per file using exact or union headers.
  3. 3Generate the new workbook, review its lineage and conversion counts, then download the XLSX result.

Example

Input
north-orders.xlsx: order_id, region, total · south-orders.xlsx: order_id, region, total, channel · Union headers
Output
One Merged data sheet with four source rows, channel blank only where absent, three lineage columns, and a Toolvore lineage sheet

The built-in example uses this exact shape. No example result is created until you choose Generate workbook.

What happens to your data

Workbook names and cell contents stay in browser memory. Fixed usage measurement can include the tool action and aggregate file count or total bytes, never filenames, sheet names or cell values. The output is a data-only rewrite, not a full-fidelity workbook clone.

Last updated November 2026

Combine two to ten XLSX workbooks locally, either by collecting every worksheet as a separate tab or by appending one selected table from each file. Keep-tabs mode gives duplicate worksheet names collision-safe suffixes. Append mode aligns values by a distinct text header, adds source-file, source-sheet and source-row columns, and includes a lineage sheet so each output row can be traced back to its local input.

How it works

Choose 2–10 .xlsx files. Each file can be up to 8 MiB compressed and all files together can be up to 24 MiB. Before parsing, the tool checks the XLSX ZIP central directory against each local entry header, including its name, flags, compression method, declared sizes and compressed-payload bounds. It refuses encrypted, ZIP64, multi-part, macro, ActiveX or embedded-object archives, more than 4,096 entries, a single expanded entry above 64 MiB, a workbook expanding above 96 MiB, or a batch expanding above 128 MiB. This bounds obvious compressed-archive expansion; it is not antivirus or proof that a file is trustworthy. Parsing runs sequentially in a local worker. Replacing, clearing or canceling the input terminates an active worker, and a read that does not finish within 20 seconds is stopped without retaining a partial workbook. The parser still expands supported files in browser memory.

Keep every worksheet creates one new data-only tab for each source sheet in file order. Excel sheet names are limited to 31 characters and cannot contain several punctuation characters, so unsafe characters are replaced and duplicate names receive a numbered suffix. The Toolvore lineage tab records output tab, source file, source sheet, row count, column count and rectangular cell count. Empty source sheets stay empty rather than disappearing.

Append selected sheets treats the first row of each selected sheet as column names. Headers must be distinct, nonempty text and matching is case-sensitive, including spaces. Exact mode requires every selected table to have the same header set but can reorder columns. Union mode keeps the first table's header order, then adds newly encountered headers; a missing source field becomes an explicit blank and the result reports how many blanks were inserted. Three collision-safe lineage columns record source file, source sheet and one-based Excel source row. Header-only inputs are rejected because they have no data to append.

Across all parsed sheets, the batch is limited to 50 worksheets, 100,000 rows, 1,000 columns per sheet and 250,000 rectangular cells. The generated workbook is checked again after audit and lineage cells are added. Strings keep surrounding spaces. Numeric XML tokens are compared exactly before export: values that JavaScript can reproduce without changing their decimal value are written as numeric cells; a long or extreme exact number that would round is kept as literal text and counted. Dates are written as ISO-style text because the original cell format and timezone meaning are not available. Every source string, filename and header is written with the explicit XLSX text type, never as a formula.

This is a data-only workflow. XLSX formula cells expose only the value last cached by the application that saved the file; a formula without a cached value can appear blank. Formula text is not recalculated or copied. Cell styles, number formats, comments, links, merged ranges, charts, images, macros, hidden state and workbook automation are not preserved or inspected. Use a full workbook application when those features are part of the result you need.

Workbook contents and filenames are read in this browser and are not posted by either tool. Normal page and usage measurement described on Privacy can include the tool action and aggregate file count or total byte count; it does not include filenames, sheet names or cell values. A result leaves the page only when you download it.

Worked example: Append two regional order tables with different optional columns

Input
north-orders.xlsx: order_id, region, total · south-orders.xlsx: order_id, region, total, channel · Union headers
Result
One Merged data sheet with four source rows, channel blank only where absent, three lineage columns, and a Toolvore lineage sheet

The built-in example uses this exact shape. No example result is created until you choose Generate workbook.

Common use cases

  • Collecting worksheets from several departmental workbooks into one review file
  • Appending monthly exports with the same headers while retaining source lineage
  • Combining tables whose optional columns differ without silently dropping a field
  • Creating a plain-data handoff when workbook formatting and automation are intentionally out of scope

Frequently asked questions

Does this preserve formulas and formatting?+

No. Formula cells contribute only the last cached value available in the XLSX file, and an uncached formula can appear blank. The output is a new data-only workbook; formula text, styles, formats, comments, charts, images, links, merged cells, macros and hidden state are not carried over.

What is the difference between exact and union headers?+

Exact requires the same case-sensitive header names in every selected table, although their order may differ. Union starts with the first table's headers and adds new names from later tables. Missing fields become blank and are counted in the result.

Why can a number become text in the merged workbook?+

The reader retains the exact numeric token from XLSX. If turning it into a JavaScript number and back would change its decimal value, Toolvore writes the original digits as explicit text instead of silently rounding them. The result card reports that count.

Can this merge XLS, XLSM, password-protected or Google Sheets files?+

It accepts unencrypted .xlsx files only. Re-save a legacy .xls or cloud spreadsheet as a data-only .xlsx copy first. Macro-bearing or encrypted containers are refused rather than partially interpreted.

Does local processing prove a workbook is safe?+

No. Local processing avoids posting cell contents, and structural limits reduce memory risk, but this is not malware scanning. Generated files contain rewritten values rather than source macros, yet you should still use normal endpoint and document-security controls.