Как объединить несколько файлов xlsm
Sheetize XLSM Merger для .NET предоставляет простой, но мощный API для объединения нескольких рабочих книг XLSM в один файл с сохранением всех листов, макросов, диаграмм и форматирования. Это удобно, когда нужно собрать отчёты, агрегировать данные или создать мастер‑книгу из разных источников.
Основные возможности
Объединение нескольких файлов XLSM
Объединяйте произвольное количество рабочих книг XLSM в одну сводную книгу. Все макросы (VBA) сохраняются и остаются рабочими в результирующем файле.
Сохранение форматирования и объектов
Все стили ячеек, формулы, таблицы, диаграммы, изображения и встроенные объекты остаются неизменными во время объединения.
Поддержка потоковой обработки
Обрабатывайте большие книги в потоковом режиме, чтобы снизить расход памяти — идеальный вариант для пакетного объединения множества файлов.
Подробные инструкции
Рабочий процесс объединения XLSM
Чтобы объединить несколько файлов XLSM с помощью Sheetize, выполните следующие шаги:
- Инициализировать Merger: Создайте экземпляр
SpreadsheetMerger. - Настроить параметры: Установите
SaveOptions, если нужно управлять именами листов, разрешением конфликтов или обработкой макросов. - Указать пути к файлам: Передайте список исходных файлов 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 лёгким, будь то быстрый скрипт для разового отчёта или сервис промышленного уровня, который ежедневно консолидирует тысячи книг с макросами.