A lightweight Windows desktop utility that combines multiple Excel workbooks into a single new workbook — one output sheet per input sheet. Built with Python and Tkinter, distributed as a standalone .exe with no install required.
All processing happens locally. No network access, no accounts, no telemetry.
| Feature | Description |
|---|---|
| Multi-file ingestion | Add any number of .xlsx, .xlsm, or .xls workbooks |
| Full sheet copy | Preserves cell values, formatting, column widths, row heights, and merged cells |
| Duplicate sheet naming | Automatically renames conflicting sheet names (e.g. Sheet1 (2)) |
| Formula injection guard | Prefixes formula-like strings with ' to prevent execution |
| Atomic output | Saves to a temp file first, then moves it into place — no half-written files |
| Size limit | Rejects files over 50 MB to prevent memory exhaustion |
| Progress feedback | Live status indicator and progress bar during merge |
Pre-built binaries are available on the Releases page:
- Windows — standalone
ExcelMerger.exe(no install, no Python required)
Prerequisites: Python 3.9+ on PATH
git clone https://github.com/cave-nerd/excel-merger.git
cd excel-merger
pip install -r requirements.txtRun directly
python excel_merger.pyBuild Windows executable
On Windows, run the included batch script:
build.bat
This creates a fresh virtual environment, installs dependencies, and runs PyInstaller. Output lands in dist/ExcelMerger.exe.
| Layer | Technology |
|---|---|
| UI | Tkinter (Python standard library) |
| Excel I/O | openpyxl |
| Packaging | PyInstaller |
GPL-3.0-only — see LICENSE.