Hallo,
das Thema Excel-Files ohne Excel zu erzeugen scheint immer wieder hier im Forum hochzukommen, daher habe ich ich entschieden eine
DLL Usbiff8.dll und eine dazugehörige
Unit UXLS.pas hier zu veröffentlichen, welche dies ermöglichen. Die Datei
Beschreibung.txt enthält eine Beschreibung der Funktionen und Eigenschaften. Zusätzlich ist noch eine
Unit Unit1.pas angehängt, welche als Demoprojekt dient.
Ich habe die
DLL selbst erstellt, daher verbleiben die Urheberrechte bei mir. Es kann jedoch jeder die
DLL völlig frei benutzen.
Die
DLL wurde unter folgenden Betriebssystemen getestet:
- WIN 98
- WIN 2000
- XP
- VISTA (32Bit, 64Bit)
- WIN 7 (32Bit, 64Bit)
Die erstellten Excel Dateien wurden getestet mit
- Microsoft Office (97-2010)
- Planmaker Office
- Kingsoft Office
- Open Office
- Gnumeric
Es existieren folgende Haupt-Restriktionen:
- Es können keine Charts und keine Pictures erzeugt werden.
Ich habe mit der Implementierung von Charts begonnen, sie aber nicht beendet, daher bitte die entsprechenden Befehle nicht aufrufen. Sie sind noch in der DLL und UXLS.pas vorhanden.
- Ebenso können keine Formeln eingegeben werden.
Ich habe eine zweite Version der
DLL erstellt und die Interface-Proceduren so angepasst, dass die Klasse innerhalb der
DLL bleibt. (
Usbiff8V2.dll und
UXLSV2.pas)
Der Nachteil dieser Implementierung ist, dass jetzt von einer Application aus nicht gleichzeitig (parallel), sondern nur nacheinander mehrere Excel Dateien erzeugt werden können, da nur immer eine Instanz der Klasse angelegt sein kann (und zwar innerhalb der
DLL). Ausserdem musste ich für jede Eigenschaft eine Procedure anlegen, die das Setzen (Ändern) ermöglicht.
Natürlich hat sich durch die Änderung die Schnittstelle komplett geändert, so dass ich das Demoprojekt komplett überarbeiten musste.
Grundlage für die Erstellung der DLLs waren folgende Dokumente:
- MICROSOFT OFFICE EXCEL 97-2007 BINARY FILE FORMAT SPECIFICATION
[*.xls (97-2007) format]
- OpenOffice.org's Documentation of the Microsoft Excel File Format
Excel Versions 2, 3, 4, 5, 95, 97, 2000, XP, 2003
- OpenOffice.org's Documentation of the Microsoft Compound Document File Format
Was ermöglichen die DLLs:
- Es können Dateien imBiff8 Format erzeugt werden.
- Es können Zellen an bestehende Excel Dateien angehängt werden.
- Es können Zellen aus bestehende Excel Dateien gelöscht werden.
- Es können Zellen in bestehende Excel Dateien ersetzt werden.
- Es können Excel Dateien eingelesen werden.
- Es ist möglich beim Beschreiben/Ersetzen von Zellen, deren Format (Farbe, Rahmen, Font...ect.) beizubehalten.
Hinweis:
- Die DLLs können lediglich Biff8 Dateien verarbeiten (Excel 97-2003 Format).
- Diagrammarbeitsblätter werden beim Einlesen einfach "überlesen".
- Die DLLs können nur die Funktionen einlesen und reproduzieren, die sie selbst auch schreiben können, also
- keine Formeln
- keine Diagramme
- keine Bilder
- keine Macros
- ...
Änderung vom 22.08.2014:
- Es ist möglich das Währungssymbol für die Formate -5..-8, -42 und-44 zu wählen.
Änderung vom 24.12.2014:
- Es ist möglich das Währungssymbol für jedes der Formate -5..-8, -42 und-44 separat zu wählen.
- Die Font Formate "doppelt unterstrichen" und "durchgesprichen" wurden ergänzt - dadurch musste die Font Formatschnittstelle komplett geändert werden.
Änderung vom 08.02.2015:
- Die Header - Anzeige der Zeilennummern und Spaltenbuchstaben - ist je Arbeitsblatt abschaltbar.
- Die Anzeige der Gitterlinien ist je Arbeitsblatt abschaltbar.
- Die Spaltenbezeichnung ist von Buchstaben auf Zahlen umschaltbar.
- Das Fenster ist je Arbeitsblatt horizontal und vertikal teilbar. Dies ist sowohl fixiert als auch nicht fixiert möglich.
Hinweis: Die älteren DLLs mussten gelöscht werden, da maximal 5 Anhänge erlaubt sind.
Falls es mit den DLLs Probleme gibt, dann bitte hier im Forum posten - ich kann dann mal sehen, ob sich was machen läßt.
Mfg
Markus