Generierung formatierter Excel-Dateien aus CSV-enhanced mit Ruby und Win32OLE
Querverweise:
Bei automatisierter Verarbeitung und Zusammenführung einer Vielzahl von Finanzreports in Firmen ist wesentlich schneller (Entwicklungs- und Laufzeit), diese typischerweise
aus einer Web-Anwendung direkt (und nicht via Excel) als CSV zu exportieren, mit den GNU/Linux-Werkzeugen bash,sed,awk zu verarbeiten und
generierte Tabellen als formatierte ASCII-Reports, CSV oder HTML denn direkt als Excel auszugeben.
Hierzu wurde bereits gezeigt, wie eine kommagetrennte CSV-Dateien mit Hochkommata in semikolon-getrennte CSV-Dateien ohne Hochkommata mit einem Lexer (cf. oben) zu überführen sind.
Verwendet man als eigenes Ausgabeformat nicht reines CSV mit Semikola, sondern erzeugt ein erweiteres CSV-Format "CSVE", welches
zusätzlich zu Ausgabezeilen auch Formatierungsanweisungen enthält, können diese Ausgaben wiederum automatisch und beliebig formatiert mit einer Ruby-Routine nach Excel konvertiert werden.
Weiterer Vorteil dieser automatischen Konvertierung mit Formatangaben gegenüber manuellem Import einer CSV-Datei ist, dass die Spaltenzahl z.B. aufeinanderfolgender
Reporttabellen wiederum beliebig variieren darf.
Folgende CSVE-Datei ...
beinhaltet
- Formatanweisungen
- Diese beginnen mit % und betreffen entweder
- genau und nur die folgende Zeile %row oder
- einen beliebigen Range %range der Datei
- Alle Anweisungen bestehen aus 4, durch ':' getrennten Teilen
- dem Gueltigkeitsbereich %row oder %range
- einer Rangeangabe, welche sich gemäß Gültigkeitsbereich entweder nur auf die folgende Zeile oder einen beliebigen Zellverbund (Zeile(n), Spalte(n), Zelle(n)) bezieht
- der Art der Formatierung
- Zahlenformat (Währung, Gleitkommazahl, Integer, Datum, Uhrzeit, Währung)
- Schriftgröße, sowie Fett- und Kursivdarstellung
- Zellfarbe
- Ausrichtung innerhalb der Zelle
- und deren Ausprägung (z.B. currency, bold, center, 19)
- CSV-Nutzzeilen
- Leerzeilen (bessere Lesbarkeit als reines CSV)
- Kommentarzeilen (dito)
und erzeugt über die Ruby-Win32OLE-Schnittstelle unten folgende XLSX-Datei
Die Verarbeitung übernimmt eine Ruby-Methode nach folgendem (hier ausschnittsweise dargestelltem) Muster
Formatbeschreibung, Formatdefinitionen und Excel-Grundroutinen ...
Zeilenweise Verarbeitung der CSVE-Datei nach Format- und Nutzzeilen; jede Formatzeile wird in 4 Teile zerlegt wie oben beschrieben
Bestimmung der Formatierungsarten Font, Fontsize und Alignment ...
Formatierung der jeweiligen Ranges sowie Ausgabe der Nutzzeilen in Excel-Generat, Restformatierungen und Speicherung
Impressum und Datenschutzerklärung