如何合并多个 xlsm 文件
Sheetize XLSM 合并器(.NET) 提供了一个既简洁又强大的 API,能够将多个 XLSM 工作簿合并为一个文件,并保留所有工作表、宏、图表和格式。这在需要汇总报告、聚合数据或从多个来源创建主工作簿时非常实用。
主要功能
合并多个 XLSM 文件
将任意数量的 XLSM 工作簿合并为一个统一的工作簿。所有宏(VBA)都会被保留,并在合并后的文件中继续正常运行。
保留格式与对象
单元格样式、公式、表格、图表、图片以及嵌入对象在合并过程中均保持完整。
流式支持
以流式方式处理大型工作簿,降低内存占用,特别适合批量合并大量文件。
详细操作说明
XLSM 合并工作流
使用 Sheetize 合并多个 XLSM 文件,按以下步骤进行:
- 初始化合并器:创建
SpreadsheetMerger实例。 - 配置选项:如需控制工作表命名、冲突处理或宏处理方式,可设置
SaveOptions。 - 指定文件路径:提供源 XLSM 文件列表以及目标合并后 XLSM 的保存位置。
- 执行合并:调用
Process并传入准备好的选项。
示例 – 将三个 XLSM 文件合并为一个工作簿
using Sheetize;
var loadOptions = new LoadOptions();
var saveOptions = new SaveOptions
{
OutputFile = @"E:\\MergedReport.xlsm"
};
SpreadsheetMerger.Process(loadOptions, saveOptions, new string[]
{
"Quarter1_Report.xlsm",
"Quarter2_Report.xlsm",
"Quarter3_Report.xlsm"
});合并成功的技巧
- 宏引用保持一致:确保源文件中的宏不使用重复的模块名称;Sheetize 会自动为冲突的模块重新命名。
- 工作表命名冲突:默认情况下,重复的工作表名称会加上 “_1”、 “_2” 等后缀。可通过
MergerOptions覆盖此行为。 - 大型工作簿:使用流式 API(
SpreadsheetMerger.StreamProcess)在合并数十个大型 XLSM 文件时保持低内存占用。
扩展格式支持
- 同一合并器同样支持 XLSX、CSV、TSV 等格式;但只有 XLSM 输入才能保留宏功能。
- 合并完成后,您可以(参考 XLSX 密码指南)为合并后的工作簿添加密码保护,以增强安全性。
有了这些功能,Sheetize 让合并多个 XLSM 文件变得轻而易举,无论是用于临时报告的快速脚本,还是用于每日合并数千个宏启用工作簿的生产级服务,都能轻松胜任。