15

是否可以使用 PHPWord 对 Word 文档上的文本进行简单的查找和替换?从我所见,你能得到的最接近的只是将文本添加到一个部分,除了字体等之外,你不能操纵现有的文本。如果没有,有什么免费的东西可以用来做这件事吗?

4

3 回答 3

11

安装

composer require phpoffice/phpword

PHP 代码

include 'vendor/autoload.php';
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor('test2.docx');
$templateProcessor->setValue('name', 'myvar');
$templateProcessor->saveAs('./xx.docx');

我的 test.docx 中只有这个词:${name}

于 2018-10-29T06:05:01.097 回答
7

您可以使用 setValue 来实现您正在寻找的东西。看看样品。

这是方法: https ://github.com/PHPOffice/PHPWord/blob/e35838f7d7928b2308df3f7f0ef6d49bf96f453c/src/PhpWord/Template.php#L131

于 2014-05-20T21:03:06.990 回答
7

不,PHPWord 仅用于创建 docx 文件。

无论如何,一个 docx 文件只是一个 zip 容器中的 xml 文件的集合。一般来说,您需要做的是:

  1. 将 xxx.docx 重命名为 xxx.zip
  2. 解压到临时文件夹
  3. 在包含文档所有文本(页眉和页脚除外)的document.xml中读取的temporary_folder/word
  4. 更换你需要更换的东西
  5. 保存文档.xml
  6. 将整个临时文件夹压缩回 xxx.docx

请注意,Word 倾向于将单词拆分为多个部分,具体取决于在保存点对文档所做的操作。任何单词的中间都可能有书签、语言更改、拼写检查或字符格式标签。

祝你好运找到一种安全的方法来处理这个问题。

于 2013-11-26T14:45:06.953 回答