Как объединить несколько файлов xlsm

Sheetize XLSM Merger для .NET предоставляет простой, но мощный API для объединения нескольких рабочих книг XLSM в один файл с сохранением всех листов, макросов, диаграмм и форматирования. Это удобно, когда нужно собрать отчёты, агрегировать данные или создать мастер‑книгу из разных источников.

Основные возможности

Объединение нескольких файлов XLSM

Объединяйте произвольное количество рабочих книг XLSM в одну сводную книгу. Все макросы (VBA) сохраняются и остаются рабочими в результирующем файле.

Сохранение форматирования и объектов

Все стили ячеек, формулы, таблицы, диаграммы, изображения и встроенные объекты остаются неизменными во время объединения.

Поддержка потоковой обработки

Обрабатывайте большие книги в потоковом режиме, чтобы снизить расход памяти — идеальный вариант для пакетного объединения множества файлов.

Подробные инструкции

Рабочий процесс объединения XLSM

Чтобы объединить несколько файлов XLSM с помощью Sheetize, выполните следующие шаги:

  1. Инициализировать Merger: Создайте экземпляр SpreadsheetMerger.
  2. Настроить параметры: Установите SaveOptions, если нужно управлять именами листов, разрешением конфликтов или обработкой макросов.
  3. Указать пути к файлам: Передайте список исходных файлов 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 лёгким, будь то быстрый скрипт для разового отчёта или сервис промышленного уровня, который ежедневно консолидирует тысячи книг с макросами.

 Русский