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

时间:2016-08-22 01:10:16

标签: .net netoffice

我正在尝试NetOffice使用模板执行MS Word邮件合并,并以编程方式填写合并字段。可用的示例here实际上没有这种情况。我在其中更新了示例03,以便它从具有合并字段的现有MS Word文档创建新文档。然后我使用以下代码更改它以访问合并字段:

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

for循环在第一次尝试枚举字段时会出现此异常: Factory未使用NetOffice程序集初始化。如果我尝试运行调试,{{1返回文档中合并字段的正确计数。我似乎无法访问字段来填充/更新它们。

有没有人遇到过这个?

更新

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

1 个答案:

答案 0 :(得分:0)

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

我在github上报告了这个错误/问题。 Link here.