使用 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.
我正在尝试 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.