2017-06-27 55 views
-1

目前我遇到了rowClone和blockClone的問題。在他們的文檔中他們說如果我們在一個合併單元格的表上使用rowClone,函數(rowClone)會克隆相鄰行,所以我說,好吧,它看起來很不錯。所以我製作了一個表格,就像你在圖片1中看到的那樣,但是當我執行腳本時,函數rowClone不能像我期望的那樣工作。 然後深入閱讀文檔,我意識到還有另一個叫做blockClone的函數,但是當我嘗試使用它時,出乎意料的是它也不起作用。有沒有人從phpWord(https://github.com/PHPOffice/PHPWord)的rowClone,blockClone有用的實現?

最後我開始尋找互聯網上的解決方案,但是他們提出的任何建議都不能幫助我,所以如果您有任何建議,請接受評論。提前致謝。

Image 1: template (.docx)

Image 2: result after processing the template

回答

0

我發現在源代碼中的bug。正則表達式中有一個空格,它使函數preg_match不匹配任何內容。下面我告訴你如何解決它:

這是原來的代碼:

if (!preg_match('#<w:vMerge/>#', $tmpXmlRow) && 
        !preg_match('#<w:vMerge w:val="continue" />#', $tmpXmlRow)) { 
     break; 
} 

固定這個TE代碼。

if (!preg_match('#<w:vMerge/>#', $tmpXmlRow) && 
       !preg_match('#<w:vMerge w:val="continue"/>#', $tmpXmlRow)) { 
      break; 
} 

以上,如果298和302的源代碼(https://github.com/PHPOffice/PHPWord/blob/develop/src/PhpWord/TemplateProcessor.php

之間 是我希望它可以幫助你!