Центрировать текст по вертикали и горизонтали в таблице PHPSpreadsheet - PullRequest
2 голосов
/ 28 мая 2020

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

$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0)->setCellValue('A1', 'Name');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
...
...
...
foreach (range('A', 'E') as $columnID) {
    $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setAutoSize(true);
    $spreadsheet->getActiveSheet()->getStyle($columnID)->getAlignment()->setHorizontal('center');
    $spreadsheet->getActiveSheet()->getStyle($columnID)->getAlignment()->setVertical('center');
}

Но когда я открываю файл Excel, текст не центрируется. Что я делаю не так?

1 Ответ

0 голосов
/ 28 мая 2020

Хорошо, проблема в том, что он не работает с диапазоном. Вам нужно сделать так:

$spreadsheet->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT);
$spreadsheet->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP);

Надо добавить ячейку номер

...