Я немного борюсь за то, чтобы все ячейки установили контекст по центру и автоматически расширялись, чтобы он не перекрывал друг друга.
Итак, что я пытаюсь сделать, это:
Установите информацию в каждой ячейке для центрирования, так как она лучше подходит для печати в формате PDF / etc.
Увеличьте размер ячеек в зависимости от количества текста в ячейке. Я не хочу, чтобы информация в ячейке А передавалась в ячейке Б.
Я пробовал этот код, но, похоже, он не работает:
$styleArray = array(
'borders' => array(
'outline' => array(
'style' => Alignment::HORIZONTAL_CENTER,
),
),
);
$sheet ->getStyle('A1:D30')->applyFromArray($styleArray);
То есть, если я делаю это для одной отдельной ячейки (центральный контекст), это работает. Сделал это так:
$sheet->setCellValue('A2', $activitiesCount)->getStyle('A2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
Для клеток, которые расширяются, я пока не нашел решения, чтобы попробовать это.
Я хотел бы сделать оба на всех моих клетках только с одной командой, если это возможно.
Это бы сработало:
Для автоматического определения размера (автоматического расширения ячейки) сделайте следующее:
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
НОТА
Вы должны сделать это индивидуально для каждого столбца, как getColumnDimension
Метод может принимать только один столбец в качестве параметра.
Вы уже выяснили горизонтальное выравнивание, но стоит отметить, что вы можете установить выравнивание более чем одного столбца, используя одну команду.
$sheet->getStyle('A:B')->getAlignment()->setHorizontal('center');
Что касается установки значений ячеек, я бы предпочел, чтобы вы делали это отдельно от всего, что связано с форматированием и стилем, просто с целью разделения проблем и читабельности.
Приветствия.
Других решений пока нет …