Laden...

Word-AddIn für mehr als ein Template sichtbar machen

Erstellt von Tweak90 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.469 Views
T
Tweak90 Themenstarter:in
24 Beiträge seit 2012
vor 12 Jahren
Word-AddIn für mehr als ein Template sichtbar machen

Passend zu meiner letzten Topic, welche nun erfolgreich gelöst wurde bleibt zu meinem Word AddIn noch eine Frage offen,

wie bringe ich einem Word-AddIn bei, dass es nicht nur bei dem Template angezeigt wird, mit welchem ich das AddIn erstellt habe, sondern auch noch bei einem weiteren?

Fals die Frage nicht so gut verständlich war:

Ich habe ein AddIn erstellt, mit dem ich ein Word Template (*.dot) mit daten fülle, sollte ich die in dem Template erhaltene Tabelle füllen, so öffne ich ein weiteres Dokument, in welchem nur die Tabelle enthalten ist (also ich habe nur den Tabellenteil des ersten Templates als ein zweites Template angelegt).
Mein AddIn zeigt sich aber nur, wenn ich das Haupttemplate geöffnet habe (klar, damit habe ich das AddIn ja auch erstellt). Es wäre aber wünschenswert, dieses AddIn auch für das zusatztemplate un dem nur die Tabelle ist anzuzeigen, dies wäre schön, da ich dann kein zweites AddIn schreiben muss (auch wenns nur copy und paste ist).

Wenn ich nälich ein 2es AddIn schreibe, so muss ich im ersten immer die Resource (template 2) austauschen, damit das AddIn nach änderungen an diesem Template noch funktioniert....

Wäre also einfach leichter und besser Wartbar wenn ich ein AddIn bei 2 verschiedenen Templates anzeigen kann).

Hoffe das ist irgendwie nicht all zu verwirrend.

Liebe Grüße
Tweak90

T
Tweak90 Themenstarter:in
24 Beiträge seit 2012
vor 12 Jahren

Möchte hier jetzt net einen auf Thread-Nekrophilen machen, aber die Frage steht noch immer im raum 😉.

Möchte wirklich nur ungern das AddIn kopieren und als 2es AddIn für das Zusatzformular installieren müssen...

1.820 Beiträge seit 2005
vor 12 Jahren

Hallo!

Handelt es sich den wirklich um ein Word-Addin oder "nur" um ein Template mit Code. Hier ist die Ausführung erst möglich, wenn das Template geladen wurde.

Ein Addin hingegen wird direkt mit Word geladen und kann dann auf alle geöffneten Dokumente zugreifen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

T
Tweak90 Themenstarter:in
24 Beiträge seit 2012
vor 12 Jahren

Um ein Word-Template...

Dieses besitzt nen Ribbon eintrag (Word 2010) über welchen ich einn Winform öffne, dieser enthällt eine Tabelle und übernimmt die daten aus einer tabelle auf dem word template.

Innerhalb des Winform wird die Tabelle dann bearbeitet (mit datenbankzugriff) und anschließend werden die daten aus dem winform ins word geschrieben...

das problem ist halt, das die tabelle auf dem wordform ne beschränkte größe hat, sollte diese tabelle voll sein, so habe ich über einen button die möglichkeit eine weitere Tabelle hinzuzufügen, diese wird aber in einem neuen Wordprozess geöffnet und soll auch hier wieder auf die selbe art und weise zu editieren sein.

Gelöschter Account
vor 12 Jahren

Inwieweit bist du mit .dot/.dotx/*.dotm Templates und dem CustomizeContext vertraut? Du kannst die 2. Word Instanz starten und via COMAddin.Object mit deiner neuen Addin Instanz kommunizieren. Sag ihm auf diese Art einfach was es tun soll.

T
Tweak90 Themenstarter:in
24 Beiträge seit 2012
vor 12 Jahren

Inwieweit bist du mit .dot/.dotx/*.dotm Templates und dem CustomizeContext vertraut? Du kannst die 2. Word Instanz starten und via COMAddin.Object mit deiner neuen Addin Instanz kommunizieren. Sag ihm auf diese Art einfach was es tun soll.

Bin nicht wirklich tief in der Thematik drin, da es mein erstes WordAddIn ist... Und nunja Csharp bin ich als azubi nun auch erst seit ein paar monaten am nutzen...

Also das ist der bisherige Code wenn die tabelle voll ist:

string tempDataPath = System.IO.Path.GetTempFileName();
                File.WriteAllBytes(tempDataPath, namespace.Properties.Resources.template);
                Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
                oWord.Documents.Open(tempDataPath);
                oWord.Visible = true;
                oWord.Activate();

diesem oWord soll ich nun via oWord.ComAddIns kla machen das er mein addin übernehmen soll? wie genau? nen textbeispiel?