AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Excel Datei generieren ohne Office
Thema durchsuchen
Ansicht
Themen-Optionen

Excel Datei generieren ohne Office

Ein Thema von marky522 · begonnen am 14. Jun 2014
Antwort Antwort
marky522
Registriert seit: 30. Okt 2006
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

Geändert von marky522 ( 8. Feb 2015 um 19:13 Uhr) Grund: Funktionserweiterung der DLLs
 
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz