Hallo,
ich habe jetzt (auch um zu vermeiden, dass Excel als Systemvoraussetzung deklariert werden muss, aus
http://www.delphipraxis.net/180747-e...ne-office.html die
DLL und die
Unit verwendet, um eine Testfunktion zu erstellen:
Delphi-Quellcode:
function TResultT.TestExcelfile(intCustID: integer; strResultFile: string): string;
var
strFile: string;
strPath: string;
strFileName: string;
begin
strFileName := 'D:\Ausgabe\test.xls');
XLSCreate(PAnsiChar(strFileName),xlsfmcreate);
XLSCreator(PAnsiChar('Test99'));
XLSFontName(PAnsiChar('Segoe UI'));
XLSWorkSheetAdd(PAnsiChar('Stichprobenergebnis'));
// Kopfdaten
XLSWriteStr(0,1,1, PAnsiChar('Test'));
XLSWriteStr(0,1,3, PAnsiChar('Kunde'));
XLSWriteStr(0,2,3, PAnsiChar(GetCustNameByID(intCustID, conData)));
XLSWriteStr(0,1,4, PAnsiChar('Stichprobe vom:'));
XLSWriteStr(0,1,5, PAnsiChar('Prüfer/in:'));
XLSWriteStr(0,1,6, PAnsiChar('Vereinbartes Qualitätsniveau:'));
XLSDestroy;
end;
Diese funktioniert in einem
VCL-Testprogramm einwandfrei, aber nicht im Thread des Dienstes. Es kommt kein Fehler, auch nicht beim Durchsteppen im Debugger, es wird einfach keine Datei erzeugt. Es ist zum Haareraufen.
Eben fällt mir auf, dass FastReport keine Probleme hat, im gleichen Thread einen Bericht als PDF zu exportieren, möglicherweise funktioniert der Excel-Export von FR dann genauso. Ich werde es ausprobieren müssen, denn ansonsten müsste ich eine Lösung entwickeln, die außerhalb des Dienstes läuft
.
Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty