Merge multiple Excel files into a single multi-sheet file with summary page
$20/month : Unlimited workflows
2500 executions/month
THE #1 IN WEB SCRAPING
Scrape any website without limits
HOSTINGER 🎉 Early Black Friday Deal
DISCOUNT 20% Try free
DISCOUNT 20%
Self-hosted n8n
Unlimited workflows - from $4.99/mo
#1 hub for scraping, AI & automation
6000+ actors - $5 credits/mo
Overview
This workflow automates the process of merging multiple .xlsx files from a designated folder into a single, well-organized Excel workbook. Each input file is converted into its own sheet within the output file. Additionally, a summary sheet is generated at the beginning, providing a convenient overview of all merged files, including their original names and the number of records in each.
This is particularly useful for consolidating reports, combining data from different sources, or archiving multiple spreadsheets into one manageable file.
How It Works
The workflow follows these key steps:
- Trigger: The process begins when you manually execute the workflow.
- Read Files: It reads all files ending with the
.xlsxextension from the/n8n_files/directory (ensure your volume is mapped correctly). - Process Each File: The workflow iterates through each file one by one. For each file, it extracts the data from the first sheet.
- Collect and Clean Data: A custom code node gathers the data from all files. It cleans the data by removing any completely empty rows and prepares it for the final Excel generation. The original filename is used to name the new sheet.
- Generate Multi-Sheet Excel: The core logic resides in a code node that uses the
xlsxlibrary. It creates a new Excel workbook in memory, adds a sheet for each processed file, and populates it with the corresponding data. It also creates a "Summary" sheet that lists all the source files and their record counts. - Save the Result: The final workbook is saved as a new
.xlsxfile in the/n8n_files/output/directory with a timestamped filename (e.g.,合并文件_20250908T123000.xlsx).
Setup & Prerequisites
To use this workflow, you need to configure your n8n instance to allow and use the external xlsx npm module.
- Place Your Files: Put all the Excel files you want to merge into the folder that is mapped to
/n8n_files/in your n8n container. - Enable External Module:
- Set the following environment variable for your n8n service in your
docker-compose.ymlfile:environment: - NODE_FUNCTION_ALLOW_EXTERNAL=xlsx
- Set the following environment variable for your n8n service in your
- Install the Module: You must build a custom Docker image for n8n that includes the
xlsxlibrary.- In the same directory as your
docker-compose.yml, create a file namedDockerfile. - Add the following content to the
Dockerfile:FROM n8nio/n8n:latest USER root RUN npm install xlsx USER node - In your
docker-compose.yml, replace theimage: n8nio/n8n...line withbuild: .for the n8n service. - Rebuild and restart your n8n container using
docker-compose up --build -d.
- In the same directory as your
Nodes Used
- Manual Trigger: To start the workflow.
- Read Write File: To read source files and save the final output file.
- Split In Batches: To process files one by one.
- Extract From File: To read the data from each
.xlsxfile. - Code: For custom JavaScript logic to process data and generate the final multi-sheet Excel file using the
xlsxlibrary.