2016-08-31 159 views
2

我正在使用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'); 
?> 

我的問題是,有沒有更好的選擇,以保持表格標題中比這每一頁?

結果: enter image description here

回答

1

在PhpWord 0.13.0您可以定義重複每一個新的頁面上排參數tblHeader表格標題行:

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

不要忘了提,如果你的頭文件涉及多行,你必須將這個數組添加到它們中。 – Chococroc