我目前正在尝试使用PHPWord库及其模板系统处理 docx 文件。我已经找到并更新了一些人(不记得名字,但它并不重要)到这个库的路径,该库可以与表一起使用(复制它的行,然后在每一行上使用 PHPWord 中的标准 setValue())。
如果我创建自己的文档,xml 中的数据是正常结构,所以要替换的变量 ${variable} 在它自己的标签中,如下所示:
<w:tbl>
<w:tr>
...
${variable}
</w:tr>
</w:tbl>
我简化了代码,在实际代码中还有许多其他标签描述大小、样式等。
我的问题是我必须处理来自其他人的文件,在这些文件中我被禁止进行重大更改,我得到一个文件,在某些时候他们是一个有一个空白行的表格。我添加了 ${variable} 变量并通过 PHPWord 运行它。问题是,它失败了。经过一番研究,我发现源 XML 如下所示:
....
...
${va
...
riab
...
le}
....
(再次大大简化,但你明白了)
这种结构对我来说是个问题,因为克隆行的函数使用 strpos()、substr() 和正则表达式来工作,并且不适用于这种结构(我无法想象这样做的优雅方式)。
所以问题是 - 有人知道为什么 docx 会这样做以及如何阻止他吗?我正在寻找通过 word 的解决方案,而不是 PHP(我需要当前功能无需太多编辑即可工作)