使用 NetOffice 以编程方式执行 Word 邮件合并

Perform Word mail merge programmatically using NetOffice

我正在尝试 NetOffice to perform MS Word mail merge using a template and programatically filling in the merge fields. The examples available here 确实没有这种情况。我更新了其中的示例 03,以便它从现有的带有合并字段的 MS Word 文档创建一个新文档。然后我将其更改为使用以下代码访问合并字段:

var fields = newDocument.MailMerge.Fields;
foreach (Word.MailMergeField field in fields)
{
   ...
}

但是 for 循环在第一次尝试枚举字段时遇到此异常:Factory 未使用 NetOffice 程序集初始化。 如果我尝试 运行 在调试时,fields.Count returns 我文档中合并字段的正确计数。我似乎无法访问 fill/update 字段。

有没有人遇到过这种情况?

更新

运行 Core.cs 上的调试,无法从 WordApi.dll 加载程序集,因此无法从该程序集中获取 FactoryInfo,我认为它需要在其_factoryList。我还没有完全弄清楚为什么即使 dll 在它正在搜索的文件夹中也无法加载程序集。

我遇到的问题似乎是 NetOffice 上的错误。该错误在 CurrentAppDomain class' LoadFrom() 中。鉴于它正在接受程序集的完整文件路径(而不是程序集的完全限定名称),如果 LoadAssembliesUnsafe 为假,它应该执行 Assembly.LoadFrom(path)

我已在 github 上报告此 bug/issue。 Link here.