none
C# - Word Serienbrief mit Excel Tabelle RRS feed

  • Frage

  • Hallo,

    ich habe eine Übergabe aus meiner Anwendung zu Word (2016) mit einer Excel Datei als Datenherkunft so erstellt:

            Word.Document doc; 
                    Word.Application app = new Word.Application();
                    doc = app.Documents.Add(Vorlage);
                    doc.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdFormLetters;
                    doc.MailMerge.OpenDataSource(Name: @"c:\text\muster.xlsx", ConfirmConversions: false, LinkToSource: true, ReadOnly: true);

    Es funktioniert auch, aber erst nachdem man ein Fenster mit Tabelle auswählen bestätigt. Dieses Fenster scheint aber nicht immer oder auch mal nur im Hintergrund.

    Wie kann ich das umgehen oder das Fenster immer in den Vordergrund setzen?

    Vielen Dank


    Sonntag, 17. Juni 2018 09:44

Antworten

  • Hallo Ralf,

    versuche es mal damit:

    String sFilename =@"c:\text\Muster.xlsx";
    doc.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdFormLetters;
    doc.MailMerge.OpenDataSource(Name: sFilename, 
    	Connection: @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilename + ";Mode=Read;Extended Properties=HDR = YES; IMEX = 1; Jet OLEDB:Eng",
    	SubType: Word.WdMergeSubType.wdMergeSubTypeAccess,
    	SQLStatement: "SELECT * FROM [Tabelle1$]");
    
    doc.MailMerge.Execute();
    

    Grüße

    Roland

    Donnerstag, 21. Juni 2018 06:53

Alle Antworten

  • Hallo Joe72ka,

    so auf den ersten Blick würde ich sagen der Parameter Connection fehlt. Mit diesem Parameter kannst Du den gewünschten Bereich in Deinem Excel-Dokument angeben.

    Die genaue Syntax habe ich gerade nicht im Kopf, das kann zumindest ein benannter Bereich, oder aber auch ein Tabelle sein, probiere mal "TABLE Tabelle1"

    Grüße

    Roland 


    Montag, 18. Juni 2018 06:43
  • Hallo Roland,

    leider hat bisher jeder Connection Befehl nichts gebracht.

    Grüße

    Ralf

    Mittwoch, 20. Juni 2018 18:17
  • Hallo Ralf,

    versuche es mal damit:

    String sFilename =@"c:\text\Muster.xlsx";
    doc.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdFormLetters;
    doc.MailMerge.OpenDataSource(Name: sFilename, 
    	Connection: @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilename + ";Mode=Read;Extended Properties=HDR = YES; IMEX = 1; Jet OLEDB:Eng",
    	SubType: Word.WdMergeSubType.wdMergeSubTypeAccess,
    	SQLStatement: "SELECT * FROM [Tabelle1$]");
    
    doc.MailMerge.Execute();
    

    Grüße

    Roland

    Donnerstag, 21. Juni 2018 06:53