Laden...

Mit COM-Wrapper Bookmarks aus Word auslesen

Erstellt von AndreasL. vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.061 Views
A
AndreasL. Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren
Mit COM-Wrapper Bookmarks aus Word auslesen

[EDIT=herbivore]Abgeteilt von Allgemeiner COM-Wrapper für Späte Bindung[EDIT]

Hallo,

bin hier auf diesen interessanten Beitrag gestoßen.

Ich versuche jetzt aber mit dieser Klasse die Bookmarks aus einer Worddatei zu lesen und dananch diese zu ersetzten.

Bräuchte dafür Hilfe wie man das macht.

Ich würde mich freuen.

Gruß AndreasL.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo AndreasL.,

geht es etwas konkreter? Es wird dir ja keiner ein Programm schreiben, dass genau das tut oder dir auch nur Schritt für Schritt erklären, was zu tun ist. Das ist deine Aufgabe. Was genau willst du wissen? Wo hängst du? Und was noch wichtiger ist, was hast du schon probiert? Wir helfen gerne, wenn entsprechenden Eigeninitiative zu erkennen ist.

herbivore

A
AndreasL. Themenstarter:in
2 Beiträge seit 2010
vor 14 Jahren

Hallo herbivore,

Bis Zeile 25 geht alles.
Hab hier mal meinen Versuch:


 // Word.Application-Objekt erzeugen
            ComObject word = new ComObject("Word.Application");

            // Dokument-Auflistung abrufen
            ComObject documents = word.GetObjectReturningProperty("Documents");

            // Neues Dokument erzeugen
            object Dateiname = digeneral.OptionenList[Nm.OptConfigPath].ToString() + Path.DirectorySeparatorChar + Nm.DeckblattFilename;
            ComObject document = documents.InvokeObjectReturningFunction("Add",Dateiname);

            // Verweise auf Dokument und Dokumentauflistung entsorgen
            document.Dispose();
            documents.Dispose();

            // Selection-Objekt der Word-Instanz abrufen
            ComObject selection = word.GetObjectReturningProperty("Selection");

            // "Hello World!" in aktuelles Dokument schreiben
            ComObject bookmarks = selection.GetObjectReturningProperty("Bookmarks");
            
            object oName;
            
            //auftragsnummer
            oName = Nm.TMauftragsnummer;
            bookmarks.InvokeProcedure("get_Item", oName);
            
            // Selection-Objekt entsorgen
            selection.Dispose();

            // Word beenden ohne zu speichern
            //word.InvokeProcedure("Quit", 0);

            // Word-Instanz entsorgen
            //word.Dispose();

            // Sichtbar machen
            word.SetProperty("Visible", true);


Die Zeile 25 geht leider nicht. Diese Function gibt es aber für Bookmarks da dieses mit der normalen COM-Programmierung funktioniert.

habe auch schon Probiert:

bookmarks.InvokeFunction("get_Item", oName);
bookmarks.InvokeObjectReturningFunction("get_Item", oName);

Hier ist das Beispiel das ich nachprogrammieren möchte mit diesem Code:



 Word.Bookmark oBookmark = null;
 Word.Range oRange = null;
 object oName;
                
  //auftragsnummer
  oName = Nm.TMauftragsnummer;
  if (aDoc.Bookmarks.Exists(Nm.TMauftragsnummer))
  {
    oBookmark = aDoc.Bookmarks.get_Item(ref oName);
    oRange = oBookmark.Range;
    oRange.Text = AuftragsnummerTextBox.Text;
   }


Falls du noch etwas wissen willst bitte sag bescheid dann werde ich schnellstmöglich antworten.

Danke schonmal für deine Hilfe.

AndreasL.

95 Beiträge seit 2006
vor 14 Jahren

Hat da schon jemand was herausgefunden?

Ich möchte auch einen gewöhnlichen Indexer auslesen:

Document.TablesOfContents[0].Range.Text

Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)