Здравствуйте.
Подскажите, как реализовать создание "сложной" таблицы, через библиотеку PhpSpreadsheet. Должна получиться примерно такого вида:
То есть колонки: "Поле 2", "Поле 3" могут иметь различное количество ячеек (в зависимости от входящих данных). Сколько не пытался, с мог добиться только такого результата:
Добился создания различного количества ячеек (в зависимости от входных данных) у столбцов 3 и 4. Проблема в том, что значения в "Поле 4" записываются в следующую ячейку относительна "Поля 3". Никак не могу добиться результат, как на 1 фото.
Сам процесс создания excel файла:
$data = $this->getData();
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('Лист 1');
$columns = range('A', 'D');
$c = 0;
$sheet->setCellValue($columns[$c++] . 1, 'Поле 1');
$sheet->setCellValue($columns[$c++] . 1, 'Поле 2');
$sheet->setCellValue($columns[$c++] . 1, 'Поле 3');
$sheet->setCellValue($columns[$c++] . 1, 'Поле 4');
foreach ($data as $value) {
$sheet->setCellValue($columns[$c++] . $r, $value->getData1());
$sheet->setCellValue($columns[$c++] . $r, $value->getData2());
$c = 2;
foreach ($value->getData3() as $item3) {
$sheet->setCellValue($columns[$c] . $r, $item3);
$r++;
}
$c = 3;
foreach ($value->getData4() as $item4) {
$sheet->setCellValue($columns[$c] . $r, $item4);
$r++;
}
$r++;
}