Мне было интересно, знает ли кто-нибудь, как выполнить слияние, используя файл Excel в качестве источника данных, чтобы заполнить поля в шаблоне Word? Я хотел бы использовать взаимодействие для Word, если бы мог... но у меня возникли некоторые трудности с поиском кода для этого. У кого-нибудь есть синтаксис для этого? Заранее спасибо.
Слияние почты (Excel в Word) с использованием C#
Ответы (3)
Очень полезный метод изучения того, как автоматизировать определенные действия в MS Word, — фактически выполнить действие вручную с включенной функцией «Запись макроса».
Когда у вас есть макрос VBA, достаточно легко преобразовать его в VB.NET или C#, использующий взаимодействие. Обычно я сначала вручную настраиваю VBA в Word, чтобы затем протестировать его перед преобразованием в язык .NET с использованием уровня взаимодействия.
Я не очень разбираюсь в mailmerge, но это часть кода VBA, сгенерированного во время записи макроса:
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= _
"c:\Arrays.xlsx", ConfirmConversions:=False, _
ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=c:\Arrays.xlsx;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Loc" _
, SQLStatement:="SELECT * FROM `Sheet1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
Я не привожу здесь полный код, но, надеюсь, это даст вам некоторые идеи.
Word (по крайней мере, в версии 2007 года, на которую я смотрю) может сделать это из коробки. Просто выберите файл Excel в качестве источника данных. Что вы пытаетесь сделать в своем коде?
Я использую это сторонний контроль. Вы можете прочитать свой файл xls в таблицу данных, а затем указать элементу управления объединить его.