Mala Direta (Excel para Word) usando C #

votos
1

Fiquei me perguntando se alguém sabia como fazer uma mala direta usando um arquivo do Excel como uma fonte de dados, para preencher campos em um modelo do Word? Eu gostaria de usar a interoperabilidade para o Word se eu pudesse ... mas estou tendo algumas dificuldades em encontrar o código para isso. Alguém tem alguma sintaxe para isso? Agradeço antecipadamente.

Publicado 19/05/2009 em 21:58
fonte usuário
Em outras línguas...                            


3 respostas

votos
3

Um método muito útil para aprender como automatizar acções específicas no MS Word é executar realmente a ação manualmente com 'Macro Record' habilitado.

Depois de ter a VBA macro é fácil o suficiente para converter isso em VB.NET ou C # que usa interoperabilidade. I tendem a ajustar o VBA primeiro manualmente no Word para que eu possa então testar este primeiro antes de converter a uma linguagem .NET usando a camada de interoperabilidade.

Eu não sei muito sobre mailmerge, mas isso é parte do VBA gerado enquanto eu gravei uma macro:

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

Eu não incluí o código completo aqui, mas espero que isto lhe dar algumas idéias.

Respondeu 19/05/2009 em 22:28
fonte usuário

votos
0

Eu uso essa 3ª controle do partido. Você pode ler o arquivo xls em uma tabela de dados e, em seguida, informar o controle para fundi-lo.

Respondeu 19/05/2009 em 22:27
fonte usuário

votos
0

Palavra (pelo menos na versão de 2007, que é o que eu estou olhando) pode fazer isso fora da caixa. Basta selecionar o arquivo do Excel como a fonte de dados. O que você está tentando fazer em seu código?

Respondeu 19/05/2009 em 22:21
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more