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