下面的代码不起作用
library(officer)
library(magrittr)
read_docx("/home/user/document.docx") %>%
body_replace_all_text("placeholder1", "text1") %>%
print(target = "/home/user/out.docx")
输出:
在文档中找到0个“ placeholder1”实例。
但是,如果我使用字符串“ tjsdhgudfhgku”而不是“ placeholder1”,则可以使用。
document.docx:
tjsdhgudfhgku
placeholder1 blahblahblah
blah-blah
为什么呢?
答案 0 :(得分:2)
以下解释是从函数的帮助文件中复制的:
[...]请注意,Word文档中的幕后文字表示通常不是您所期望的!有时,由于样式更改,文本输入暂停,以后的修订和编辑等原因,文本的一段被分解(或“分块”)为多个“游程”。如果尚未设置文本的样式并输入了以“一次全部”的方式进行,例如通过将其粘贴或以编程方式将其输出到Word文档中,则可能不会出现问题。但是,如果使用的是手动编辑的文档,则可能会导致意外的文本查找失败。
您可以使用高级管理人员功能docx_show_chunk
显示如何将当前光标处的文本段落分块为行,以及每个分块中的文本。这可以帮助解决意外的找不到文本的故障。
[...]