Установить выравнивание ячеек таблицы - PHPPowerPoint

1

Я изо всех сил пытаюсь установить выравнивание ячейки в PHPPowerpoint, я искал и искал и не мог найти ничего

Вот фрагмент моего сценария создания PHP Powerpoint -

$shape = $currentSlide->createTableShape(14);
$shape->setHeight(100);
$shape->setWidth(800);
$shape->setOffsetX(50);
$shape->setOffsetY(200);

echo date('H:i:s') . ' Add Header Row'.EOL;
$row = $shape->createRow()->setHeight(15);
$row->nextCell()->setWidth(75)->createTextRun('')->getFont()->setBold(true)->setSize(11);
$row->nextCell()->setColSpan(6)->createTextRun('Tests')->getFont()->setBold(true)->setSize(11);

$row->getCell()->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER)->setVertical(Alignment::VERTICAL_BOTTOM); // trying to set alignment here

$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->setColSpan(6)->createTextRun('Long Tests')->getFont()->setBold(true)->setSize(11);
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->createTextRun('');
$row->nextCell()->setWidth(75)->createTextRun('XTests')->getFont()->setBold(true)->setSize(11);

Я попытался установить выравнивание в линию с созданием текста ячейки, как это -

 $row->nextCell()->setColSpan(6)->createTextRun('Tests')->getFont()->setBold(true)->setSize(11)->getCell()->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER)->setVertical(Alignment::VERTICAL_BOTTOM);

Это порождает ошибку, говоря, что выравнивание не существует в классе шрифтов, что справедливо, но это не так, но я не могу показаться более подходящим для выравнивания.

Во-вторых, я попытался включить код выравнивания непосредственно после создания текста в ячейке -

$row->getCell()->getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER)->setVertical(Alignment::VERTICAL_BOTTOM); // trying to set alignment here

Кажется, что это работает, но не влияет на созданный слайд.

Любой совет очень оценили!

Теги:
phppowerpoint

1 ответ

0

Так что это сработало для меня.

Каждая редактируемая ячейка я создал для нее переменную:

$cellA1 = $row-> nextCell(); //a1 is the address it would have in an excel sheet

Затем я создал переменную для самого textRun:

$textRunA1 = $cellA1 -> createTextRun('PAGE');//Page is what will be printed in the cell A1

Оттуда я добавил свои стили:

$textRunA1 -> getFont() -> setBold(true);
$textRunA1 -> getFont() -> setSize(12);
$textRunA1 -> getFont() -> setColor(new Color('FFFFFFFF'));

После этого я поставил это, чтобы получить правоцентрист:

$cellA1 -> getActiveParagraph()->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER)->setVertical(Alignment::VERTICAL_BOTTOM);

Я использовал getActiveParagraph() вне самой ячейки.

  • 0
    Это действительно помогло! Их документация оставляет желать лучшего.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню