Заголовки таблиц каждой страницы Word PHPWord

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

Я пытаюсь это, но я думаю, что это не лучшее решение:

<?php
require_once 'PHPWord.php';

// New Word Document
$PHPWord = new PHPWord();

// New portrait section
$section = $PHPWord->createSection();

// Define table style arrays
$styleTable = array('borderSize'=>6, 'borderColor'=>'006699', 'cellMargin'=>80);
$styleFirstRow = array('borderBottomSize'=>18, 'borderBottomColor'=>'0000FF', 'bgColor'=>'66BBFF');

// Define cell style arrays
$styleCell = array('valign'=>'center');
$styleCellBTLR = array('valign'=>'center', 'textDirection'=>PHPWord_Style_Cell::TEXT_DIR_BTLR);

// Define font style for first row
$fontStyle = array('bold'=>true, 'align'=>'center');

// Add table style
$PHPWord->addTableStyle('myOwnTableStyle', $styleTable, $styleFirstRow);
$header = $section->createHeader();
$table = $header->addTable();
$table->addRow(900);
$table->addCell(2000,$styleCell)->addText('Row1',$fontStyle);
$table->addCell(2000,$styleCell)->addText('Row2',$fontStyle);
$table->addCell(2000,$styleCell)->addText('Row3',$fontStyle);
$table->addCell(2000,$styleCell)->addText('Row4',$fontStyle);
$table->addCell(500,$styleCell)->addText('Row5',$fontStyle);
// Add table
$table = $section->addTable('myOwnTableStyle');

// Add more rows / cells
for($i = 1; $i <= 1000; $i++) {
$table->addRow();
$table->addCell(2000)->addText("Cell $i");
$table->addCell(2000)->addText("Cell $i");
$table->addCell(2000)->addText("Cell $i");
$table->addCell(2000)->addText("Cell $i");

$text = ($i % 2 == 0) ? 'X' : '';
$table->addCell(500)->addText($text);
}// Save File
$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('AdvancedTable.docx');
?>

У меня вопрос: есть ли лучший способ сохранить заголовки таблицы на каждой странице, чем эта?

Результат:
введите описание изображения здесь

2

Решение

В PhpWord 0.13.0 вы можете определить строку заголовка таблицы, которая будет повторяться на каждой новой странице с параметром строки tblHeader:

// your header row addition
$table->addRow(900, array('tblHeader' => true));
2

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector