下面的代码不起作用
library(officer)
library(magrittr)
read_docx("/home/user/document.docx") %>%
body_replace_all_text("placeholder1", "text1") %>%
print(target = "/home/user/out.docx")
Run Code Online (Sandbox Code Playgroud)
输出:
在文档中找到 0 个 'placeholder1' 实例。
但是如果我使用字符串“tjsdhgudfhgku”而不是“placeholder1”,它就可以工作。
文档.docx:
tjsdhgudfhgku
placeholder1 blahblahblah
blah-blah
Run Code Online (Sandbox Code Playgroud)
为什么这样?
以下解释复制自该函数的帮助文件:
[...] 请注意,Word 文档中文本的幕后表示通常不是您所期望的!有时,由于样式更改、文本输入暂停、后来的修订和编辑等,一段文本被分解(或“分块”)为多个“运行”。它以“一次性”的方式进行,例如通过粘贴或以编程方式将其输出到您的 Word 文档中,那么这可能不是问题。但是,如果您正在使用手动编辑的文档,这可能会导致意外的文本查找失败。
您可以使用官员功能docx_show_chunk来显示当前光标处的文本段落是如何分块的,以及每个块中的文本是什么。这可以帮助解决查找文本的意外失败。[...]
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |