Вставить таблицу в шаблонный документ phpWord

Вам нужно сделать ElementBinding против вашего элемента Select на сегментированной кнопке «SelectionChange». Это изменит все ссылки привязки вашего элемента управления Select, поэтому ваше «видимое» состояние завершится неудачно. Поэтому вам нужно установить его в «true» или «false» вручную. Но я думаю, что это не проблема, потому что если пользователь сделал выбор в сегментированной кнопке, это потому, что он «качественный».

Итак, фрагмент здесь

  
    

        
            
                
            
        

        

        
    
  

И здесь обработчик события

  onSegBtnSelected(oEvent){
    var oSegBtn = oEvent.getParameters().item;
    var oBindingPath = oSegBtn.getBindingContext("Result").getPath();
    if(this.getView().getModel("Result").getProperty(oBindingPath + "/Selection")){
      var oSelect = oEvent.getSource().getParent().getContent()[1];
      oSelect.bindElement("Result>" + oBindingPath + "/Selection/Row");
      oSelect.setVisible(true);
    }
  }

1
задан Chris 19 January 2019 в 21:11
поделиться

1 ответ

Вы можете получить XML-код вашей таблицы и вставить его в шаблон

//Create table
$document_with_table = new PhpWord();
$section = $document_with_table->addSection();
$table = $section->addTable();
for ($r = 1; $r <= 8; $r++) {
    $table->addRow();
    for ($c = 1; $c <= 5; $c++) {
        $table->addCell(1750)->addText("Row {$r}, Cell {$c}");
    }
}

// Create writer to convert document to xml
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($document_with_table, 'Word2007');

// Get all document xml code
$fullxml = $objWriter->getWriterPart('Document')->write();

// Get only table xml code
$tablexml = preg_replace('/^[\s\S]*(<w:tbl\b.*<\/w:tbl>).*/', '$1', $fullxml);

//Open template with ${table}
$template_document = new \PhpOffice\PhpWord\TemplateProcessor('template.docx');

// Replace mark by xml code of table
$template_document->setValue('table', $tablexml);

//save template with table
$template_document->saveAs('template_with_table.docx');
.
0
ответ дан autumnrustle 19 January 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: