Ich versuche, Microsoft Word-Dokumente aus meiner C# -Anwendung mit Microsoft.Office.Interop.Word
Bibliothek zu erstellen. Ich verwende eine Vorlagendatei, um mehrere Bausteine zu halten und ein Dokument mit ihnen so zu rüsten:Wie ordnungsgemäß Att AttachedTemplate bei Verwendung von Word.Interop zugreifen?
using Word = Microsoft.Office.Interop.Word
Word.Application wdApplication = null;
dynamic wdDocument = null;
try {
wdApplication = new Word.Application();
wdDocument = wdApplication.Documents.Add(Properties.Settings.Default.Template);
wdDocument.AttachedTemplate.BuildingBlockEntries("Agenda.Header").Insert(wdDocument.Paragraphs.Last().Range);
// ...
} catch { }
So funktioniert alles gut. Das Problem liegt daran, dass ich wdDocument
als dynamic
deklariere. Ich bekomme keine IntelliSense-Hinweise, die mir sonst viel Zeit und Mühe ersparen würden.
Allerdings, wenn ich versuche zu erklären wdDocument
als Word.Document
ich die folgende Fehlermeldung erhalten:
Error CS1545 Property, indexer, or event '_Document.AttachedTemplate' is not supported by the language; try directly calling accessor methods '_Document.get_AttachedTemplate()' or '_Document.set_AttachedTemplate(ref object)'
Ich habe auch versucht wdDocument
als Microsoft.Office.Tools.Word.Document
erklärt, sondern dass nur Fehler Typumwandlung eingeführt zwischen wdApplication
ein wdDocument
.
Wie deklarieren Sie einen Dokumenttyp korrekt oder greifen Sie auf Bausteine zu, die in der angehängten Vorlage gespeichert sind?
@mjwills Ich habe diesen Link gesehen, aber leider ist es nicht anders. Es geht darum, die angehängte Vorlage festzulegen und nicht auf ihre Eigenschaften zuzugreifen. Danke trotzdem! – heuels
Also 'get_AttachedTemplate' funktioniert nicht für Sie? – mjwills
Können Sie den Compilerfehler teilen, den Sie erhalten, wenn Sie 'get_AttachedTemplate()' versuchen? – mjwills