AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Excel generieren ohne Office

Excel generieren ohne Office

Offene Frage von "Hey Joe"
Ein Thema von Moony · begonnen am 28. Okt 2011 · letzter Beitrag vom 23. Mär 2020
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

AW: Excel generieren ohne Office

  Alt 28. Okt 2011, 15:17
Danke, ich werd das mal umsetzen...
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
marky522

Registriert seit: 30. Okt 2006
29 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 09:20
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. Bitte ein Label
und einen Button auf das Form ziehen.

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 mit Microsoft Office (97-2010), Planmaker Office, Kingsoft Office,
Open Office und Gnumeric getestet.

Es existieren folgende Haupt-Restriktionen: Es können keine Charts und keine Pictures erzeugt werden.
Ebenso können keine Formeln eingegeben 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.)

Geändert von marky522 (24. Dez 2014 um 06:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#3

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 09:34
PChar ist ein sehr ungünstiger Exporttyp.

Ich empfehle dringend auf PAnsiChar zu ändern, da die DLL ja mit Delphi 7 erstellt wurde und die DLL demnach als PAnsiChar deklariert wurde.

Zitat:
Die DLL wurde unter folgenden Betriebssystemen getestet: WIN 98, WIN 2000, XP, VISTA (32Bit, 64Bit),
WIN 7 (32Bit, 64Bit)
PS: Der Versuch eine Datei in C:\... zu erstellen kann seit Win7 (mit ordentlichen Benutzerrechten, bzw. mit aktivem UAC noch nie funktioniert haben. (eigentlich schon seit Win2000, mit Benutzerrechte ging das nicht ... Zugriff verweigert)

Und eigentlich ist die Übergabe von Objekten, über die DLL-Grenzen hinweg, sowieso keine soooo gute Idee.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Dez 2011 um 10:07 Uhr)
  Mit Zitat antworten Zitat
marky522

Registriert seit: 30. Okt 2006
29 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 10:06
Zitat:
PS: Der Versuch eine Datei in C:\... zu erstellen kann seit Win7 (mit ordentlichen Benutzerrechten, bzw. mit aktivem UAC noch nie funktioniert haben. (eigentlich schon seit Win2000, mit Benutzerrechte ging das nicht ... Zugriff verweigert)
Das ist ja nur ein Demoprojekt, welches die grundsätzliche Funktionsweise der DLL zeigen soll

Zitat:
Ich empfehle dringend auf PAnsiChar zu ändern, da die DLL ja mit Delphi 7 erstellt wurde und die DLL demnach als PAnsiChar deklariert wurde.
Diese Änderung kann von jedem bequem in der UXLS.pas vorgenommen werden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#5

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 10:30
Das ist ja nur ein Demoprojekt, welches die grundsätzliche Funktionsweise der DLL zeigen soll
Nur daß der Test nicht funktioniert und mir demnach auch nichts zeigen kann.
Mein Explorer wird nicht virtualisiert (das ist der Standard) und demnach zeigt er mir die C:\test1+1.xls nicht an.


Bezüglich des Objektsharings: Mach aus dem Objekt ein Interface und gut ist es.
PS: Das .Free kann nicht funktionieren, da hier der falsche Speichermanager angesprochen wird.
(und PChar nicht vergessen oder auf WideString umsteigen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Dez 2011 um 10:33 Uhr)
  Mit Zitat antworten Zitat
marky522

Registriert seit: 30. Okt 2006
29 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 13:21
Zitat:
Nur daß der Test nicht funktioniert und mir demnach auch nichts zeigen kann.
Mein Explorer wird nicht virtualisiert (das ist der Standard) und demnach zeigt er mir die C:\test1+1.xls nicht an.
Na da bin ich aber froh, dass du die Datei doch noch entdeckt hast

Zitat:
Bezüglich des Objektsharings: Mach aus dem Objekt ein Interface und gut ist es.
Da die DLL so funktioniert, wie sie ist, habe ich eigentlich nicht vor sie zu ändern.

Zitat:
PS: Das .Free kann nicht funktionieren, da hier der falsche Speichermanager angesprochen wird.
Ich habe das genauso gemacht, wie in dem berühmten Beispiel einer Objekt-DLL von A. Kosch.
Ausserdem habe ich 500 Excel Dateien in einer Schleife erzeugen lassen und konnte kein Speicherleck in der Anwendung finden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.398 Beiträge
 
Delphi 12 Athens
 
#7

AW: Excel generieren ohne Office

  Alt 24. Dez 2011, 13:51
Mit Delphi 7 und wenn man alle Interfaces (virtuelle Methoden) nutzt und oder die Codeoptimierung deaktiviert ist, dann funktioniert es.

Ab Delphi 2009 muß man mit dem PChar aufpassen und sobald Delphi "nichtgenutzte" Methoden aus der VMT entfernt, dann stimmen die Indize der nachfolgenden Methoden nicht mehr und das war's dann > Exceptions wären das Mindeste.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Dez 2011 um 13:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz