.XLS dynamisch erstellen
.XLS dynamisch erstellen
Hallo Leute,
Ich suche nach einer Möglichkeit aus meiner Anwendung heraus möglichst plattformunabhängig .XLS Dateien zu erstellen. Dabei sollte nicht unbedingt OO oder Office gestartet werden. OLE Komponenten scheint es eh nur für Windows zu geben. Habe dazu z.B FPspreadsheet gefunden, was allerdings nicht XLS Dateien einlesen kann. Kennt jemand etwas Brauchbareres für diese Zwecke? Vielen Dank im Vorraus
Ich suche nach einer Möglichkeit aus meiner Anwendung heraus möglichst plattformunabhängig .XLS Dateien zu erstellen. Dabei sollte nicht unbedingt OO oder Office gestartet werden. OLE Komponenten scheint es eh nur für Windows zu geben. Habe dazu z.B FPspreadsheet gefunden, was allerdings nicht XLS Dateien einlesen kann. Kennt jemand etwas Brauchbareres für diese Zwecke? Vielen Dank im Vorraus
Kommt sehr drauf an, was du haben willst.
Für ein einfaches öffnen mit Excel genügt offenbar schon eine HTML-Tabelle.
S.a. http://www.devblog.de/index.php/archives/2005/02/05/25/" onclick="window.open(this.href);return false;
Für ein einfaches öffnen mit Excel genügt offenbar schon eine HTML-Tabelle.
S.a. http://www.devblog.de/index.php/archives/2005/02/05/25/" onclick="window.open(this.href);return false;
Genau das scheint der Punkt zu seien. Danke erstmal für eure Antworten. XLS-Dateien kann FPspreadsheet auch ohne HTML erstellen - Einlesen geht hier auch nicht ohne Weiteres. Ich hatte auch eher an eine Komponente/Klasse gedacht die es für Lazarus geben könnte. Anscheinend gibt es so etwas noch nicht und da ich leider gerade wenig Zeit habe eine selber zu entwickeln, werde ich wohl erstmal damit auskommen müssen (Wäre aber mal ein schönes Projekt). Falls euch noch eine andere Möglichkeit einfällt, lasst es mich bitte wissen.
-
- Beiträge: 131
- Registriert: Sa 5. Apr 2008, 17:57
- OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
- CPU-Target: 32Bit/64Bit
- Wohnort: Ulm
In die MS-Office Formate direkt zu schreiben ist eine sehr schwierige Angelegenheit. Also ein direktes Erzeugen einer .XLS Datei halte ich für zu aufwändig.
Ich würde da eher über eine .CSV Datei gehen. ASCII mit Trennzeichen. Das lässt sich auch dann in Excel weiter verarbeiten. Ist einfach zu erzeugen und einfach auszulesen.
Wenn es nicht unbedingt Excel sein muss, bietet sich natürlich OpenOffice mit dem ODF-Format an. Wir benutzen das um aus unserem System direkt in solche Dateien Einträge zu schreiben. Das Format ist ja bekannterweise auch standardisiert und ausgezeichnet dokumentiert.
Habe allerdings bislang nur Erfahrungen .ODT Dateien. Diese sind einfach ZIP Archive und lassen sich durch umbenennen in *.ZIP dann auspacken. Das geht mit den Calc Dateien genauso.
Die interessante Datei zur Bearbeitung ist dann die "content.xml", darin stehen die Daten der Datei.
Einfach mal ansehen wie das strukturiert ist, ev. ist der Auswand vertretbar.
Bei den Textverarbeitungsdateien geht das ausgezeichnet.
Gruss,
Tibor
Ich würde da eher über eine .CSV Datei gehen. ASCII mit Trennzeichen. Das lässt sich auch dann in Excel weiter verarbeiten. Ist einfach zu erzeugen und einfach auszulesen.
Wenn es nicht unbedingt Excel sein muss, bietet sich natürlich OpenOffice mit dem ODF-Format an. Wir benutzen das um aus unserem System direkt in solche Dateien Einträge zu schreiben. Das Format ist ja bekannterweise auch standardisiert und ausgezeichnet dokumentiert.
Habe allerdings bislang nur Erfahrungen .ODT Dateien. Diese sind einfach ZIP Archive und lassen sich durch umbenennen in *.ZIP dann auspacken. Das geht mit den Calc Dateien genauso.
Die interessante Datei zur Bearbeitung ist dann die "content.xml", darin stehen die Daten der Datei.
Einfach mal ansehen wie das strukturiert ist, ev. ist der Auswand vertretbar.
Bei den Textverarbeitungsdateien geht das ausgezeichnet.
Gruss,
Tibor
-
- Beiträge: 86
- Registriert: Mo 11. Sep 2006, 12:54
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Bremen
Das ist vielleicht kein nützlicher Hinweis, aber es gibt neben Pascal ja noch eine andere Sprache, die ich sehr mag nämlich Perl. Dafür gibt es wunderbare Module, um Excel zu lesen und zu schreiben.
Du könntest also möglicherweise schauen, wie die Programme aufgebaut sind und davon lernen, oder einfach unter Linux und Mac das sowieso schon vorhandene Perl ansprechen, um die Excel-Dateien zu lesen und schreiben. Unter Windows könntest Du dann direkter vorgehen.
Ist aber nur so eine Idee. Fallt also nicht zu doll über mich her
Du könntest also möglicherweise schauen, wie die Programme aufgebaut sind und davon lernen, oder einfach unter Linux und Mac das sowieso schon vorhandene Perl ansprechen, um die Excel-Dateien zu lesen und schreiben. Unter Windows könntest Du dann direkter vorgehen.
Ist aber nur so eine Idee. Fallt also nicht zu doll über mich her

In der Hölle sollst du schmoren...ovidius hat geschrieben: Ist aber nur so eine Idee. Fallt also nicht zu doll über mich her

Ne, aber ich glaube die können auch nicht zaubern.
Hast du einen Link zu einem Perl XLS Reader der nicht OLE benützt?
Laut Wiki ist die Binärspezifikation erst seit Feb. 2008 frei downloadbar.
Am einfachsten wäre es wohl, Office Open XML zu implementieren.
-
- Beiträge: 86
- Registriert: Mo 11. Sep 2006, 12:54
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Bremen
Ich hatte an Spreadsheet::ParseExcel gedacht.
Was heißt hier genau OLE? Es ist jedenfalls von meinem Mac aus benutzbar und auch unter Linux, baut aber auf einem Modul namen OLE-Storage auf: OLE::Storage
Das wäre jedenfalls eine plattform-übergreifende Lösung, die man sich anschauen könnte.
Was heißt hier genau OLE? Es ist jedenfalls von meinem Mac aus benutzbar und auch unter Linux, baut aber auf einem Modul namen OLE-Storage auf: OLE::Storage
Das wäre jedenfalls eine plattform-übergreifende Lösung, die man sich anschauen könnte.
http://www.heise.de/ix/artikel/1998/05/163/" onclick="window.open(this.href);return false;
Hier gibt's auch noch was:
http://gd.tuwien.ac.at/opsys/winnt/delp ... 9lw.htm#11" onclick="window.open(this.href);return false;
Soll nativ laufen.
http://gd.tuwien.ac.at/opsys/winnt/delp ... 9lw.htm#11" onclick="window.open(this.href);return false;
Soll nativ laufen.