現在、 PHPWordライブラリとそのテンプレート システムを使用して docx ファイルを操作しようとしています。テーブルを操作できるこのライブラリへのパスを誰かが見つけて更新しました(名前は覚えていませんが、重要ではありません)(行を複製し、各行でPHPWordの標準setValue()を使用します)。
独自のドキュメントを作成すると、xml 内のデータは通常の構造になっているため、置き換えられる変数 ${variable} は次のように独自のタグ内にあります。
<w:tbl>
<w:tr>
...
${variable}
</w:tr>
</w:tbl>
コードを簡略化しました。実際のコードには、サイズ、スタイルなどを表す他のタグが多数あります。
私の問題は、大きな変更を行うことが禁止されている他の人からのドキュメントを処理する必要があることです。ある時点で、それらが 1 つの空白行を持つテーブルであるドキュメントを取得します。${variable} 変数を追加し、PHPWord で実行します。問題は、それが失敗することです。いくつかの調査を行った後、ソース XML が次のようになっていることがわかりました。
....
...
${va
...
riab
...
le}
....
(ここでも大幅に簡略化されていますが、全体像がわかります)
行を複製する関数は strpos() 、 substr() 、および正規表現を使用して機能し、この構造では機能しないため、この構造は私にとって問題です (そうするエレガントな方法は想像できません)。
問題は、docx がこれを行う理由と、それを防ぐ方法を知っている人はいますか? PHPではなく単語による解決策を探しています(あまり編集せずに機能するには、現在の関数が必要です)