Как скопировать лист PHPexcel
Есть шаблон .xlsx . С помощью PHPexcel я подставляются значения в ячейки из бд и сохраняю в новом документе.
Теперь мне нужно объединить все документы. Я думаю в сторону нескольких листов в 1 .xlsx файле. Вот только не пойму как скопировать шаблон на другой лист.
Ответы (1 шт):
Автор решения: Meow
→ Ссылка
Показываю на примере PhpSpreadsheet-а (потомка PhpExcel).
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
// Подготовим таблицу, в которую мы скопируем
// листы из существующих таблиц
$spreadsheet = new Spreadsheet();
$spreadsheet->removeSheetByIndex(0);
// Ссылки на файлы ваших таблиц
$filePaths = [];
foreach ($filePaths as $key => $filePath) {
// Достанем лист из таблицы
$worksheet = (new XlsxReader)
->load($filePath)
->getActiveSheet()
->setTitle(++$key);
// Добавим его в новую таблицу
$spreadsheet->addSheet($worksheet);
}
// Окей, сохраним новую таблицу в файл
$writer = new XlsxWriter($spreadsheet);
$writer->save(__DIR__ . '/fileName.xlsx');