Microsoft Excel - Schnittstelle


Mit der texManager Excel- Schnittstelle können aus einer Excel-Anwendung heraus Word-Dokumente erstellt werden. Unabhängig davon kann man natürlich jede Excel-Tabelle mit "Copy and Paste" in einen Textbaustein einfügen und im texManager speichern.

 

Es werden verschiedene Arten unterstützt:

1. Excel Tabellen oder einzelne Zellen in einen Textbaustein integrieren

Excel Tabellen oder einzelne Zellen können ganz einfach mit "Copy and Paste" in die Textbausteine des texManagers eingefügt werden. Entweder mit oder ohne Verlinkung (Je nachdem welche Art der Einfügung ausgewählt wird).


D.h. Änderungen in der original Excel Tabelle werden automatisch in den Textbausteinen übernommen. Das ist u.a. besonders nützlich, wenn z.B. eine Kalkulation in Excel erstellt wird und die Ergebnisse automatisch in die entsprechenden Textbausteine oder in das Word-Dokument übernommen werden.

 

Damit die Änderungen in der Excel-Tabelle in den Textbausteinen sichtbar werden, müssen diese aktualisiert werden. Entweder richtet man es so ein, dass der Baustein oder das Dokument automatisch beim Öffnen aktualisiert wird oder führt die Aktualisierung manuell aus, indem die Tabelle markiert und durch Drücken der F9-Taste die Aktualisierung durchgeführt wird. Eine dritte Möglichkeit ist die automatische Aktualisierung über einen Makroaufruf.

Video: Excel und Word verknüpfen

Als kleine Anregung wird in diesem Video-Blog gezeigt wie man Daten in einer Excel-Tabelle suchen und dann in ein Word-Dokument bzw. in einenTextbaustein einfügen kann.

2. Automatisierte Dokumentenerstellung mit Excel-Tabellen

(Ab Version 6.x)


texManager bietet die einfache Möglichkeit, durch eine kleine Erweiterung, bestehende Excel-Tabellen mit dem texManager Dokumentengenerator zu synchronisieren. Dazu müssen nur zwei neue Spalten in die Tabelle eingefügt werden. Über eine festgelegte Spaltenüberschrift (TB-ID und TB-SELECT) wird dann die Kommunikation zum texManager hergestellt. Dabei spielt die Position der Spalten keine Rolle. Es ist kein zusätzliches Excel-Makro oder sonstiges Add-In notwendig.

Die Spalte <TB-ID> enthält die Kurzbezeichnung der entsprechenden Textbausteine im texManager.
In der Spalter <TB-SELECT> werden Zeilen bzw. Textbausteine ausgewählt, indem man dort einen Wert, wie z.B. ein "x" einträgt. Aus den so markierten Zeilen wird dann die Generatorliste im texManager synchronisiert, bzw. eine neue Generator-Liste erstellt. Aus dieser kann dann ein Word-Dokument automatisiert generiert werden. Zusätzlich können einzelne Excel-Zellen mit den Platzhaltern in den Textbausteinen, wie unter Pkt.1 beschrieben, verknüpft werden.

Zuerst muss die Excel-Tabelle gespeichert werden, danach wird im texManager der <Excel Creator> aufgerufen und die entsprechende Tabelle importiert. texManager wertet nun die Excel-Tabelle automatisch aus und sucht alle Bausteine, die in der Excel-Tabelle markiert wurden. Findet er in der aktuellen Generator-Liste ein passendes Äquivalent, wird dieses angehakt. Findet er nichts Passendes, wird automatisch ein neuer Eintrag, mit dem betreffenden Textblock, am Ende der Generatorliste erstellt. Es bleibt weiterhin die Möglichkeit zusätzliche Textbausteine manuell dazuzufügen.

Abhängigkeiten

Excel bietet eine einfache Möglichkeit Abhängigkeiten zwischen einzelnen Zellen zu definieren. Dies kann dafür genutzt werden, um Textbausteine in Abhängigkeit zu setzen. D.h., wenn ich einen bestimmten Baustein in der Excel-Tabelle markiere (also ein "x" in die Spalte <TB-SELECT> eintrage), werden automatisch andere, abhängige Textblöcke markiert oder entmarkiert.

 

Diese Abhängigkeiten werden über Excels "Wenn Dann Funktion" implementiert.
Z.B.: =WENN(H6 = "x";"x"; "") :
Wurde in der Spalte <TB-SELECT> in der Zeile 6 ein "x" eingetragen, wird auch gleichzeitig in der aktuellen Zelle ein "x" eingetragen, ansonsten wird das "x" entfernt.

 

Oder =WENN(UND(H4="x";H12="x");"x";"")
Wurde für die Textbausteine in Zeile 4 und in Zeile 12 jeweils ein "x" eingetragen, wird auch gleichzeitig in der aktuellen Zelle ein "x" eingetragen.

Fazit:
Mit der "Excel Creator" Funktion kann texManager eine komplette, neue Generator-Liste auf Grundlage einer bestehenden "Excel-Tabelle" erstellen. Alternativ können Einträge einer zuvor geöffneten Generator-Liste mit der Excel-Auswahl synchronisiert werden. D.h. man kann eine fertige Dokumentenstruktur, mit Kopf- und Fußzeilen, in einer Generator-Liste vorbereiten und es werden dann automatisch die in Excel ausgewählten Textbausteine zusätzlich angehakt.
Tipp:
Damit die Spalte mit den Markierungen (TB-SELECT) nicht bis zum Ende der Tabelle ausgewertet werden muss, kann man den Vorgang vorzeitig beenden, indem man in der entsprechenden Zelle "XXX" einträgt.

3. Komplette Excel-Tabellen mit dem XML-Dokumentengenerator (docBuilder I) einbetten

Die Handhabung ist denkbar einfach. Einfach die Zellen oder die ganze Tabelle markieren und das Makro starten.

 

Dabei passiert folgendes:
Der markierte Bereich wird als Excel-Tabelle in einem separaten Word-Dokument eingefügt und im Standard Dokumenten-Ordner (z.B.: C:\ProgramData\texManager CP\Documents\Exceltab.docx) gespeichert.

 

In einer einfachen XML-Datei wird die Struktur des Dokuments abgebildet, sowie die Position der Excel-Tabelle.

Z.B.:

<?xml version="1.0"?>
<DATA>
<BLOCK>
<Field FILE="MYDATABASE"/>
<Field BLOCKNAME="Vorlage-Bestellung"/>
</BLOCK>

<Field FILE="MYDATABASE"/>

<Field BLOCKNAME="Zwischenteil"/>
</BLOCK>

<BLOCK>
<Field FILE=""/>
<Field BLOCKNAME="C:\ProgramData\texManager CP\Documents\Exceltab.docx""/>
</BLOCK>
<BLOCK>

</BLOCK>

<Field FILE="MYDATABASE"/>

<Field BLOCKNAME="Schlussteil"/>
</BLOCK>

<Field FILE="MYDATABASE"/>

<Field BLOCKNAME="Fuss"/>
</BLOCK>
</DATA>

 

Ein Makro startet im Hintergrund, das Modul docBuilder arbeitet dann die XML-Datei ab, bis das fertige Dokument entstanden ist. In dem Makro-Code kann festgelegt werden, wie die Daten im Word-Dokument behandelt werden solen. Z.B. über eine aktive Verlinkung oder unterschiedliche Formatierungsarten.

 

Bsp.:

oWordapp.Selection.PasteExcelTable LinkedToExcel, WordFormatting, RTF 'Verlinkte Tabelle einfügen
Parameters:
LinkedToExcel:
Required Boolean. True links the pasted table to the original Excel file so that changes made to the Excel file are reflected in Microsoft Word.
WordFormatting:
Required Boolean. True formats the table using the formatting in the Word document; False formats the table according to the original Excel file.
RTF:
Required Boolean. True pastes the Excel table using Rich Text Format (RTF); False pastes the Excel table as HTML.

4. Textbausteine durch Markierung automatisiert übergeben

Über eine relative Sprungadresse in der Datei TMUSER.INI im Benutzer-Verzeichnis des texManager können Exceldaten und Word-Textbausteine zusammen in einem Dokument eingefügt werden.

Einmalig legt man das Sprungprofil in der Initialisierungsdatei "tmuser.ini" im Benutzerverzeichnis des texManagers ab.


Der Aufbau ist wie folgt:
Var1 = <Platzhaltername>, <Sprungweite>
Es können bis zu 4 Werte (Var1-Var4) übergeben werden.


Zum Beispiel:
[EXCEL]
Var1=Quantity,3
Var2=Price,4
Var3=Sum,5
Var4=Name,-1

Bei Bedarf kann die Anzahl der Variablen erhöht werden. Über die Sprungweite wird die Richtung und Position der Platzhalterwerte relativ zur Textbaustein-Kurzbezeichnung angegeben. Positive Werte deuten nach rechts, negative Werte nach links.


Durch die relative Positionsauswertung kann man flexibel beliebige Excel-Tabellen auslesen. Die mitgelieferte Wordvorlage mit den Steuer-Makros ("tmExcelCtrl.dotm") muss natürlich im Zugriff sein.

 

Wird ein Textbaustein nicht gefunden, sucht der texManager nach einem "Fehler-Baustein" mit der Kurzbezeichnung "TB_NOT_FOUND". Dieser kann individuell gestaltet werden und wird dann als Ersatz eingefügt.

Platzhalter anlegen

Platzhalter in den Textbausteinen werden über Seriendruck-Felder befüllt. Dazu muss man nur Seriendruckfelder mit der entsprechenden Platzhalterbezeichnung in den Textbaustein einfügen. Die Platzhalternamen entsprechen den Einträgen in der "tmuser.ini" Datei (s.o).

Ein leeres Feld kann im Textbaustein-Editor mit der Tastenkombination <STRG><F9> erzeugt werden. In den geschweiften Klammern wird dann der Begriff "MERGEFIELD" gefolgt von der Platzhalterbezeichnung eingegeben. Z.B. {MERGEFIELD AUFTRAGSNR}. Mit der Tastenkombination <Alt><F9> kann die Ansicht zwischen Feldfunktionen und normalem Text umgeschaltet werden.