2015-08-28 4 views
0

Я понятия не имею, почему, но мне очень сложно заставить PHPWord функционировать должным образом. Работая с ошибками, я считаю, что мой ниже код работает, но я не могу найти какой-либо результат. Таким образом, либо 1) это ничего не происходит, либо 2) я не могу найти сохраненный файл (хотя я считаю, что я смотрел в каждом каталоге). У кого-нибудь есть идеи? ThanksPHPWord Сохранить Справочник

require_once '/home/public_html/biz/PHPWord-master/src/PhpWord/Autoloader.php'; 
    \PhpOffice\PhpWord\Autoloader::register(); 
    require_once '/home/public_html/biz/PHPWord-master/src/PhpWord/PhpWord.php'; 
    $PHPWord = new \PhpOffice\PhpWord\PhpWord(); 
    $document = $PHPWord->loadTemplate('/home/public_html/biz/WordTemp.docx'); 

    $document->setValue('HERE', 'test'); 

    // Saving the document as OOXML file... 
    $objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($PHPWord, 'Word2007'); 
    $objWriter->save('helloWorld.docx'); 

ответ

0

Если я правильно понял, вы пытаетесь обработать шаблон. Возможно, я ошибаюсь, но вы можете сделать это только через TemplateProcessor.

Я использую что-то вроде этого. Я надеюсь, что это помогает.

<?php 
function processTemplate($templateFile,$outputFile,$data){ 
    //PHPWORD INIT 
     require_once __DIR__ . '/../src/PhpWord/Autoloader.php';//Your actual path here obviously, here it is set for the sample dir 

     \PhpOffice\PhpWord\Autoloader::register(); 

     // Template processor instance creation 
     $templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor($templateFile); 
    //CORE 
     foreach($data as $key => $value){ 
      if(is_array($value)) { 
       $rowNum = sizeof($value); 
       $actRow = 0; 
       $templateProcessor->cloneRow($key, $rowNum); 
       foreach($value as $row) { 
        $actRow++; 
        foreach($row as $col => $cellValue){ 
         $templateProcessor->setValue($col."#".$actRow, $cellValue); 
        } 
       } 
      }else{ 
       $templateProcessor->setValue($key, $value); 
      } 
     } 

    //SAVING FILE 
     $templateProcessor->saveAs($outputFile); 
    return true; 
} 
//example 
$data = array(

     "setval1" => "Orange",//for setvalue 

     "setval2" => "Apple", //for setvalue 

     "clonerow1" => array(

      array("clonerow1" => "First entry","animal" => "Elephant","owner" => "Jack"), 

      array("clonerow1" => "Second entry","animal" => "Cat", "owner" => "Alice") 

     ) //for clonerow 

    ); 
?> 
+0

Переход на матричный процессор действительно заставил все работать! Спасибо за вашу помощь. – Buster