Центрируйте весь текст в PHPSpreadsheet и расширяйте ячейки, чтобы заполнить их контекстом.

Я немного борюсь за то, чтобы все ячейки установили контекст по центру и автоматически расширялись, чтобы он не перекрывал друг друга.

Итак, что я пытаюсь сделать, это:

  1. Установите информацию в каждой ячейке для центрирования, так как она лучше подходит для печати в формате PDF / etc.

  2. Увеличьте размер ячеек в зависимости от количества текста в ячейке. Я не хочу, чтобы информация в ячейке А передавалась в ячейке Б.

Я пробовал этот код, но, похоже, он не работает:

$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);

Для клеток, которые расширяются, я пока не нашел решения, чтобы попробовать это.

Я хотел бы сделать оба на всех моих клетках только с одной командой, если это возможно.

1

Решение

Это бы сработало:

Для автоматического определения размера (автоматического расширения ячейки) сделайте следующее:

$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);

НОТА

Вы должны сделать это индивидуально для каждого столбца, как getColumnDimension Метод может принимать только один столбец в качестве параметра.

Вы уже выяснили горизонтальное выравнивание, но стоит отметить, что вы можете установить выравнивание более чем одного столбца, используя одну команду.

$sheet->getStyle('A:B')->getAlignment()->setHorizontal('center');

Что касается установки значений ячеек, я бы предпочел, чтобы вы делали это отдельно от всего, что связано с форматированием и стилем, просто с целью разделения проблем и читабельности.

Приветствия.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]