首页 > 解决方案 > Office Interop 12 在 MailMerge.OpenDataSource 上失败

问题描述

我有一个 ac# 项目,它使用Office.Interop版本 12 和 Office 2013在 dotx 文件和 xls 文件之间进行邮件合并。它在生产中工作但不在开发中,相同的代码在 Interop 版本 14 和 Office 2016 上运行,但我不能更改服务器版本。错误显示“ HRESULT: 0x800706BE ”并且没有更多信息。我尝试了一些文件夹访问(每个人都可以完全访问),安装.net framework 1.1,更改组件服务,所有这些都没有成功。有没有人有解决方案的想法?

在这里失败:

Doc.MailMerge.OpenDataSource(Name: fileName, SQLStatement: sqlStmt);

标签: c#comoffice-interop

解决方案


目前尚不清楚传递给该OpenDataSource方法的实际参数是什么......

无论如何,尝试使用 VBA 宏来检查代码的工作方式,而不依赖于 .net 框架和其他东西。此示例创建一个新的主文档并附加名为 的 Excel 工作表Names.xls。Connection 参数从名为“Sales”的范围中检索数据。

Dim docNew As Document 

Set docNew = Documents.Add 

With docNew.MailMerge 
 .MainDocumentType = wdCatalog 
 .OpenDataSource Name:="C:\Documents\Names.xls", _ 
 ReadOnly:=True, _ 
 Connection:="Sales" 
End With

推荐阅读