Для объединения файлов XLSX/XLS в один файл с использованием библиотеки PhpSpreadsheet вам потребуется выполнить следующие шаги:
1. Установите PhpSpreadsheet в ваш проект, используя Composer. Выполните следующую команду в командной строке:
composer require phpoffice/phpspreadsheet
2. Подключите классы, необходимые для работы с PhpSpreadsheet, в вашем скрипте:
use PhpOfficePhpSpreadsheetIOFactory; use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx;
3. Создайте новый объект класса Spreadsheet:
$spreadsheet = new Spreadsheet();
4. Прочитайте содержимое каждого файла XLSX/XLS, который вы хотите объединить, и добавьте его в созданный объект Spreadsheet:
$filenames = ['file1.xlsx', 'file2.xlsx']; // Замените на ваши файлы foreach ($filenames as $filename) { $spreadsheet_to_merge = IOFactory::load($filename); $sheet_to_merge = $spreadsheet_to_merge->getActiveSheet(); $spreadsheet->addSheet($sheet_to_merge); } $spreadsheet->removeSheetByIndex(0); // Удалите первый лист по умолчанию, если не нужен
5. Создайте новый объект класса Xlsx, чтобы получить файл объединения:
$writer = new Xlsx($spreadsheet); $writer->save('merged_file.xlsx'); // Укажите имя и путь к файлу объединения
Теперь у вас будет файл "merged_file.xlsx", в котором будут объединены все файлы XLSX/XLS, перечисленные в массиве $filenames.
Обратите внимание, что в приведенном выше примере предполагается, что все файлы XLSX/XLS имеют одинаковую структуру (т.е. одинаковые заголовки столбцов).