Office Interop 12 не работает на MailMerge.OpenDataSource - PullRequest
1 голос
/ 27 мая 2020

У меня есть проект c#, который выполняет слияние почты между файлом dotx и файлами xls с Office.Interop версии 12 и Office 2013. Он работает в производстве, но не в разработке, тот же код работает с Версия взаимодействия 14 и Office 2016, но я не могу изменить версию сервера. Ошибка показывает « HRESULT: 0x800706BE » и больше никакой информации. Я попробовал получить доступ к папкам (полный доступ всем), установить net framework 1.1, изменить компонентные службы, все безуспешно. Есть у кого-нибудь представление о разрешении?

Здесь не работает:

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

1 Ответ

0 голосов
/ 27 мая 2020

Непонятно, какие фактические параметры передаются методу OpenDataSource ...

В любом случае, попробуйте использовать макросы VBA для проверки работы кода, не полагаясь на. net framework и другие вещи. В этом примере создается новый основной документ и прикрепляется лист Excel с именем Names.xls. Аргумент Connection извлекает данные из диапазона с именем «Продажи».

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
...