采用OpenXml(服务器不依赖Office组件)

在word生成的最后加上代码:

using (WordprocessingDocument docx = WordprocessingDocument.Open(sourceRealReportPath, true)) { //操作word代码 … //更新域 docx.MainDocumentPart.DocumentSettingsPart.Settings.Append(new DocumentFormat.OpenXml.Wordprocessing.UpdateFieldsOnOpen() { Val = true }); docx.Close(); }

采用这种方式生成word之后,需要打开word时才触发更新更新域操作,且打开word时会有提示框,若要去除提示框,需在客户机上进行以下两步操作:

1、修改注册表:(找到对应office版本)

HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options

新增或修改DWORD Value:FieldCalcSecurityLevel;值设置为0

net软件库(使用.net更新word目录)(1)

注意:

1、这里存在问题,如果不打开word的话,目录无法更新,必须有使用office打开word的操作

2、不打开word,直接通过office web 365转Pdf或者在线阅读word,目录也不会更新

2、修改office->选项->信任中心->信任中心设置->受保护视图:

移除掉:”为来自Internet的文件启用受保护视图”前面的勾选

,