Excel in ritardo con .NET
-
28-10-2019 - |
Domanda
Devo aggiungere valori per i miei "segnalibri" in un documento Word. Lì ho bisogno di raggiungere questo obiettivo usando il legame tardivo.
Ho estratto per prenotare Mark, ma come posso cambiare il valore?
object bookMark = @"OfferRef";
Type applicationType = Type.GetTypeFromProgID("Word.Application");
object applicationObject = Activator.CreateInstance(applicationType);
object documentsObject = applicationType.InvokeMember("Documents", System.Reflection.BindingFlags.GetProperty,
null, applicationObject, null);
applicationType.InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, applicationObject,
new object[] { true });
Type documentsType = documentsObject.GetType();
object documentObject = documentsType.InvokeMember("Add", BindingFlags.InvokeMethod, null, documentsObject,
new Object[] { @"e:\offer.doc"});
Type documentType = documentObject.GetType();
object fieldsBookMarks = documentType.InvokeMember("BookMarks", BindingFlags.GetProperty, null, documentObject, null);
Type typeBookMarks = fieldsBookMarks.GetType();
object bookMark = typeBookMarks.InvokeMember("Item", BindingFlags.InvokeMethod, null, fieldsBookMarks, new object[] { bookMark });
Type type = bookMark.GetType();
object Range = type.InvokeMember("Range", BindingFlags.GetProperty, null, bookMark, null);
type = Range.GetType();
Soluzione
E 'questo quello che stai cercando?
Inoltre, potresti voler dare un'occhiata alla parola chiave dinamica disponibile in C# 4. renderà il tuo codice più facile da scrivere e leggere.
Confronta il codice nella Figura 4 con il codice nella Figura 5
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow