R 官员:此文档包含可能引用其他文件的字段

R 官员:此文档包含可能引用其他文件的字段,r,ms-word,officer,R,Ms Word,Officer,我使用R中的AzingOfficer包创建MicrosoftWord输出。我使用模板Word文档指定大部分格式 下面是一段代码片段,说明了我正在做什么 library("officer") read_docx("Output Template Blank.docx") %>% body_add_par(value = "Kaplan-Meier Analysis of Time (Months) to HSV-2 Episodes", style = "caption") %>%

我使用R中的AzingOfficer包创建MicrosoftWord输出。我使用模板Word文档指定大部分格式

下面是一段代码片段,说明了我正在做什么

library("officer")

read_docx("Output Template Blank.docx") %>%
body_add_par(value = "Kaplan-Meier Analysis of Time (Months) to HSV-2 Episodes", style = "caption") %>%
body_add_flextable(my_km_table, align = "left") %>%
print("Kaplan-Meier Output.docx")
这通常效果很好。唯一的问题是打开文档会在Word中生成不需要的消息

“此文档包含可能引用其他文件的字段。是否更新文档中的字段?”


我可以通过单击“是”来解决这个问题,通过添加一个空格来稍微修改文档,然后单击“保存”。我不想手动操作,希望有更好的方法。我曾经对此进行过调查,并回忆起在Microsoft Word中有一种关闭此功能的方法。我还记得,这被视为某种安全风险。我不确定风险有多大。所以我想知道这是否是一个好的解决方案,或者是否真的有更好的方法

出于安全考虑,这是一个经过深思熟虑的设计决策。某些类型的字字段可以访问外部数据。微软在这一点上的政策是,打开文档(并承担风险)的责任在于用户——用户需要决定文档是否来自可信来源

因此,如果字段设置为自动更新,将显示一条消息,询问用户是否允许更新

可以插入字段而不设置自动更新。在这种情况下,用户将需要手动更新字段当打开任何文档时,可能会有一个加载项来处理此问题。由于用户将选择安装外接程序,这也是用户的责任


抑制消息的唯一其他方法是在将其传递给用户之前打开文档并更新字段。通过编程,可以使用Word automation(而不是服务器端)或在安装了Word automation Services的SharePoint内部版本中完成此操作。

谢谢。非常详细的回答。我们很快就会接受这一点。当你说“可以插入字段而不设置自动更新”时,你能详细说明你的意思吗?您是说可以通过Microsoft Word的高级选项禁用此功能吗?@Paul我不熟悉您使用的库,只熟悉Open XML SDK和Word Open XML。SDK文档中引用了ECMA标准第1部分17.15.1.90()对后者进行了解释。基本上,这是一个省略设置选项的问题,而不是包括它。再次感谢。查看了您发送的链接。我在想,如果我能够在我的模板Word文档中对进行修改,那么这将带到由R代码中的print()函数创建的新Word文档中。我需要考虑的一件事是,是否通过R或其他方式尝试对XML进行更改。如果不是R,我认为可以在Word本身中或在MicrosoftOffice中使用OpenXMLSDK2.5。在你看来,这两条路线中的任何一条都是正确的吗?如果没有,你会推荐其他的软件吗?我想可以,但你需要测试一下。我不能判断R是否是一个好工具,因为我不熟悉它。毫无疑问,OpenXMLSDK肯定可以做到这一点。如果它是一次性的(只需为这一个文档删除该元素,一次),您甚至可以手动执行,而无需为其编写代码。