XLSGEN - Bedienung, Programmierung und Fehlersuche


  Einführung  
  Programmausführung  
  Syntax  
  XLSGEN-Befehle  
  Fehlersuche  


Einführung

XLSGEN ist selbst als Excel-Datei "xlsgen.xls" realisiert. Das Programm besteht aus VBA-Befehlen, die beim Programmstart unter Excel automatisch aufgerufen werden.

XLSGEN liest eine Datei im CSV-Format in ein neues Tabellenblatt ein. Nach dem Einlesen wird jede einzelne Zelle untersucht und eventuell enthaltene Befehle werden ausgeführt. Abschließend kann die so erzeugt Excel-Datei automatisch unter einem vorgegebenen Namen gespeichert werden.

Die Befehle zum Formatieren der einzelnen Zellen sind in der Eingabe-(CSV-)Datei zu den Daten der Zellen hinzuzufügen. Eine CSV-Zeile "100;200;300" erzeugt drei Zellen mit den Inhalten 100, 200 und 300. Um die mittlere Zelle in fetter Schrift zu formatieren, würde man die Eingabezeile um einen entsprechenden Befehl erweitern: "100;200_B;300".

Solche (Text-) Daten können praktisch mit jedem Programm erzeugt werden, wodurch also die Ausgabe komplexer Excel-Tabellen durch "normale" Programmiersprachen möglich wird.

Der aktuelle Befehlsumfang resultiert aus den bisherigen Anforderungen und wird bei Bedarf laufend erweitert. Die erste Version wurde im März 2006 fertiggestellt und umfaßte nur die zu diesem Zeitpunkt für eine bestimmte Anwendung benötigten Befehle.

Da XLSGEN in VBA geschrieben ist, kann jeder Anwender den Interpreter nach Belieben erweitern. Allerdings wird empfohlen dies nicht zu tun, sondern Erweiterungswünsche jeweils an e.neuhauser@ensoft.de zu richten. Ich werde versuchen, möglichst schnell zu reagieren. Dieses Verfahren hat den Vorteil, daß keine inkompatiblen Versionen von XLSGEN in die Welt gesetzt werden und daß jeder Anwender auch von zukünftigen Erweiterungen des Originals profitieren kann. Erfahrungsgemäß soll man bei der Festlegung der Syntax neuer Befehle eher einmal zu viel nachdenken, als zu wenig. Das aktuelle System sollte bei vorsichtigem Vorgehen noch viele Erweiterungen vertragen. Auch für Verbesserungsvorschläge aller Art bin ich stets dankbar - ebenso für Beispiele.






Programmausführung

Zu Ausführung von XLSGEN ruft man das Programm excel.exe auf (von Kommandozeile, Batch, usw.) und nennt dabei als erstes Argument die Datei xlsgen.xls, also z.B.

"c:\programme\microsoft office\office\excel.exe" c:\xlsgen\xlsgen.xls

Die Gänsefüßchen im Beispiel werden benötigt, weil der Programmpfad ein Leerzeichen enthält. Das Programm benötigt den Namen der (CSV-) Eingabedatei in der Umgebungsvariablen "xls_in" und den Namen der (XLS-) Ausgabedatei - falls gewünscht - in der Umgebungsvariablen "xls_out". Ein vollständiger Aufruf würde also z.B. folgende Befehle umfassen:

set xls_in=c:\test\test.csv
set xls_out=c:\test\test.xls
"c:\programme\microsoft office\office\excel.exe" c:\xlsgen\xlsgen.xls

Um einfachere Aufrufe zu ermöglichen, steht im Programmverzeichnis von XLSGEN auch das Batch-Programm xlsgen.bat. Um den gleichen Effekt, wie die obigen Befehle, zu erreichen, wechselt man zunächst in das Programmverzeichnis von XLSGEN und gibt dort ein:

xlsgen.bat c:\test\test.csv c:\test\test.xls

Das freundliche Hilfsprogramm erledigt den Rest, bzw. informiert über eventuelle Probleme.


Syntax

Eine Eingabedatei für XLSGEN hat zunächst das Format einer CSV-Datei. Eine CSV-Datei mit zwei Zeilen und je 3 Spalten könnte z.B. so aussehen:

100;200;300
1;2;3

Der Import dieser Datei erzeugt eine entsprechende Excel-Tabelle, in der alle Zellen gleichen Aufbau haben. Um das Aussehen einer Zelle zu verändern, werden an den Inhalt XLSGEN-Befehle angefügt. Um die 2. Zelle der ersten Zeile in fetter Schrift und in 20 Punkt Größe zu erzeugen, würde man die CSV-Datei so ergänzen:

100;200_B_FS20;300
1;2;3

"_B" bedeutet "Bold" (Fett) und "_FS20" bedeutet "Font Size 20 Punkt".

Sämtliche XLSGEN-Befehle beginnen mit einem Unterstrich. Man stellt sie zweckmäßigerweise an das Ende des Zelleninhalts. Wenn man aus irgendwelchen Gründen einen Befehl an den Anfang einer Zelle stellen muß, wird der Beginn des Textinhaltes durch den zusätzlichen Befehl "_TX" gekennzeichnet. Das Beispiel oben könnte also auch so aussehen:

100;_B_FS20_TX200;300
1;2;3

Falls im Zelleninhalt ein Unterstrich vorkommt, sind stattdessen 2 Unterstriche anzugeben.

Im Installationsverzeichnis steht eine Beispieldatei mit dem Namen "xlsdemo.txt". Diese Datei zeigt die derzeit verfügbaren Befehle samt Beispielen und ermöglich so den schnellsten Überblick. Wechseln Sie im Kommandozeilen-Fenster auf das Installationsverzeichnis und starten Sie die Demo-Datei mit "xlsdemo.bat".




XLSGEN-Befehle

  Befehle zur Schrift-Manipulation  
  Befehle zur Ausrichtung des Zelleninhaltes  
  Befehle zur Ausrichtung des Zelleninhaltes  
  Befehle zur Änderung der Zelle  
  Befehle zur Verbindung von Zellen  
  Sonder-Befehle  

Befehle zur Schrift-Manipulation


_B
Schaltet für die aktuelle Zelle auf fette Schrift.

_b
Schaltet für die aktuelle Zelle auf normale Schrift. Dieser Befehl wird benötigt, wenn vorher z.B. die gesamte Zeile auf fette Schrift geschaltet wurde (z.B. mit _SRxx und _B).

_FNxxx
Gibt die gewünschte Schriftart an. Leerzeichen im Namen sind erlaubt, also z.B. "_FSCourier New".

_FSxxx
Gibt die gewünschte Schriftgröße in Punkt an. "_FS20" erzeugt Schriftgröße 20 Punkt.

_FCxxx
Gibt die gewünschte Schriftfarbe als Farb-Indexnummer an. Werte zwischen 1 und 56 sind möglich. Farbtabelle siehe Beispiel "xlsdemo.bat". "_FC3" ergibt rote Schrift.


Befehle zur Ausrichtung des Zelleninhaltes


_AR
Ordnet den Zelleninhalt rechtsbündig an (Standard ist linksbündig).

_AC
Ordnet den Zelleninhalt zentriert an (Standard ist linksbündig).

_NL
Innerhalb des Zelltextes wird eine neue Zeile begonnen. Nach diesem Befehl muß ein "_TX" folgen, also z.B. "Textzeile1_NL_TXTextzeile2".


Befehle zur Änderung der Zelle


_CCxx
Gibt die gewünschte Hintergrundfarbe als Farb-Indexnummer an. Werte zwischen 1 und 56 sind möglich. Farbtabelle siehe Beispiel "xlsdemo.bat". "_CC6" ergibt gelben Hintergrund.

_CWxx
Gibt die gewünschte Breite einer Zelle (und somit der Spalte) in Punkt an.

_CW*
Erzeugt für diese Spalte die optimale Breite. Dieser Befehl sollte nur in der letzten Zeile verwendet werden!

_LT Erzeugt erzeugt einen Strich am oberen Rand der Zelle.

_LB Erzeugt erzeugt einen Strich am unteren Rand der Zelle.

_LL Erzeugt erzeugt einen Strich am linken Rand der Zelle.

_LR Erzeugt erzeugt einen Strich am rechten Rand der Zelle.


Befehle zur Verbindung von Zellen


_M
Verbindet eine Zelle mit der vorhergehenden und erzeugt so eine breitere Zelle. Grafische Eigenschaften, wie Zellenfarbe und Striche müssen in den verbundenen Zellen gleich sein, sonst sind die Ergebnisse unvorhersehbar. Wenn beide beteiligten Zellen einen Textinhalt haben, wird nur der Text der ersten Zelle verwendet.

_MNxx
Verbindet eine Zelle mit xx vorhergehenden und erzeugt so eine breitere Zelle. Es gelten die gleichen Regeln, wie für "_M".


Sonder-Befehle


"__"
Zwei aufeinanderfolge Unterstriche erzeugen einen einzelnen Unterstrich im Zelltext.

"_SRxx"
Dieser Befehl bewirkt eine zeitweilige Selektion mehrerer aufeinanderfolgender Zellen in der gleichen Zeile. Darauffolgende Befehle innerhalb der aktuellen Zelle wirken sich auf die gesamte Selektion aus.

Die Befehlsfolge "_SR3_B" bewirkt z.B., daß der Inhalt der aktuellen Zelle und der beiden darauffolgenden Zellen in fetter Schrift dargestellt wird.

"_SCxx"
Dieser Befehl bewirkt eine zeitweilige Selektion mehrerer aufeinanderfolgender Zellen in der gleichen Spalte. Darauffolgende Befehle innerhalb der aktuellen Zelle wirken sich auf die gesamte Selektion aus.

Die Befehlsfolge "_SC3_CC6" bewirkt z.B., daß der Hintergrund der aktuellen Zelle und der beiden darunter liegenden Zellen gelb gefärbt wird.





Fehlersuche


Das aktuelle Konzept von XLSGEN enthält keinerlei Prüfung der eingelesenen Befehle. Es sind dadurch mehrere Fehlererscheinungen möglich:

Fehleranzeige von Excel während der Ausführung
Da Excel selbst keine XLSGEN-Befehle kennt, beziehen sich die Fehlernachrichten auf XLSGEN und sind nur dann verständlich, wenn man die internen Funktionen von XLSGEN kennt. Recht einfach ist aber die Fehleranalyse, wenn man die Ausführung einfach abbricht und dann prüft, wie weit die Ausführung durch XLSGEN überhaupt gekommen ist. Man erkennt meist recht einfach die Stelle, bis zu der die Formatierung durchgeführt wurde. Dahinter liegt der Fehler.

Unbekannte Befehle
Befehle, die zwar mit dem Unterstrich beginnen, danach aber unbekannte Zeichenkombinationen enthalten, werden nicht ausgeführt und bleiben als Bestandteil des Zelleninhaltes bestehen. Dort kann man sie sofort erkennen.

Nicht ausführbare Befehlsfolgen
Nicht alle Befehlsfolgen sind von Excel so ausführbar, wie man es gerne hätte. So verschwindet bei einer Kombination von zwei Zellen eine eventueller Text in der zweiten Zelle. Es gibt keinerlei Fehlernachricht, aber das Ergebnis ist eben nicht so, wie vielleicht gewünscht.

Auch einzelne Befehle funktionieren nicht immer richtig. So erzeugt der Befehl "_NL" (neue Zeile innerhalb einer Zelle) manchmal sonderbare Ergebnisse, ohne daß ich bis jetzt eine Erklärung dafür hätte. Da hilft nur basteln und forschen und neue Erkenntnisse, die mir mitgeteilt werden, werde ich gerne hier veröffentlichen (mit Nennung des Forschers natürlich).