如何合并多个 xlsm 文件

Sheetize XLSM 合并器(.NET) 提供了一个既简洁又强大的 API,能够将多个 XLSM 工作簿合并为一个文件,并保留所有工作表、宏、图表和格式。这在需要汇总报告、聚合数据或从多个来源创建主工作簿时非常实用。

主要功能

合并多个 XLSM 文件

将任意数量的 XLSM 工作簿合并为一个统一的工作簿。所有宏(VBA)都会被保留,并在合并后的文件中继续正常运行。

保留格式与对象

单元格样式、公式、表格、图表、图片以及嵌入对象在合并过程中均保持完整。

流式支持

以流式方式处理大型工作簿,降低内存占用,特别适合批量合并大量文件。

详细操作说明

XLSM 合并工作流

使用 Sheetize 合并多个 XLSM 文件,按以下步骤进行:

  1. 初始化合并器:创建 SpreadsheetMerger 实例。
  2. 配置选项:如需控制工作表命名、冲突处理或宏处理方式,可设置 SaveOptions
  3. 指定文件路径:提供源 XLSM 文件列表以及目标合并后 XLSM 的保存位置。
  4. 执行合并:调用 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 文件变得轻而易举,无论是用于临时报告的快速脚本,还是用于每日合并数千个宏启用工作簿的生产级服务,都能轻松胜任。

 中文