是否可以使用 PHPWord 对 Word 文档上的文本进行简单的查找和替换?从我所见,你能得到的最接近的只是将文本添加到一个部分,除了字体等之外,你不能操纵现有的文本。如果没有,有什么免费的东西可以用来做这件事吗?
13171 次
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 来实现您正在寻找的东西。看看样品。
于 2014-05-20T21:03:06.990 回答
7
不,PHPWord 仅用于创建 docx 文件。
无论如何,一个 docx 文件只是一个 zip 容器中的 xml 文件的集合。一般来说,您需要做的是:
- 将 xxx.docx 重命名为 xxx.zip
- 解压到临时文件夹
- 在包含文档所有文本(页眉和页脚除外)的document.xml中读取的temporary_folder/word
- 更换你需要更换的东西
- 保存文档.xml
- 将整个临时文件夹压缩回 xxx.docx
请注意,Word 倾向于将单词拆分为多个部分,具体取决于在保存点对文档所做的操作。任何单词的中间都可能有书签、语言更改、拼写检查或字符格式标签。
祝你好运找到一种安全的方法来处理这个问题。
于 2013-11-26T14:45:06.953 回答