Schau mal bitte hier den vierten Betrag an:
https://stackoverflow.com/questions/...t-having-excel
Das könnte eventuell eine Lösung sein, die man sich relativ schnell selbst bauen kann.
Ist letztlich "nur" 'ne
HTML-Datei mit der Endung xls.
Excel kann damit umgehen und für einen reinen Datenaustausch könnte das durchaus reichen.
Eine Minimalversion in Pascalsacript für meinen Editor sieht so aus:
Delphi-Quellcode:
program Test;
procedure CreateXLS(ADataSet: TDataSet; AFileName :
String; ASheetName :
String);
var
i : Integer;
sl : TStringList;
begin
sl := TStringList.Create;
sl.Add('
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">');
sl.Add('
<head>');
sl.Add('
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">');
sl.Add('
<!--[if gte mso 9]>');
sl.Add('
<xml>');
sl.Add('
<x:ExcelWorkbook>');
sl.Add('
<x:ExcelWorksheets>');
sl.Add('
<x:ExcelWorksheet>');
sl.Add(Format('
<x:Name>%s</x:Name>',[ASheetName]));
sl.Add('
<x:WorksheetOptions>');
sl.Add('
<x:Selected/>');
sl.Add('
<x:Panes>');
sl.Add('
<x:Pane>');
sl.Add('
<x:Number>1</x:Number>');
sl.Add('
<x:ActiveRow>1</x:ActiveRow>');
sl.Add('
</x:Pane>');
sl.Add('
</x:Panes>');
sl.Add('
<x:ProtectContents>False</x:ProtectContents>');
sl.Add('
<x:ProtectObjects>False</x:ProtectObjects>');
sl.Add('
<x:ProtectScenarios>False</x:ProtectScenarios>');
sl.Add('
</x:WorksheetOptions>');
sl.Add('
</x:ExcelWorksheet>');
sl.Add('
</x:ExcelWorksheets>');
sl.Add('
</x:ExcelWorkbook>');
sl.Add('
</xml>');
sl.Add('
<![endif]-->');
sl.Add('
</head>');
sl.Add('
<body>');
sl.Add('
<table x:str>');
ADataSet.First;
while not ADataSet.EoF
do begin
sl.Add('
<tr>');
for i := 0
to ADataSet.Fields.Count - 1
do sl.Add(Format('
<td x:num>%s</td>',[ADataSet.Fields.Fields[i].AsString]));
sl.Add('
</tr>');
ADataSet.Next;
end;
sl.Add('
</table>');
sl.Add('
</body>');
sl.Add('
</html>');
sl.SaveToFile(AFileName);
sl.Free;
end;
begin
CreateXLS(DataSet,'
c:\temp\Dateiname.xls','
Sheetname');
end.
Excel kann die daraus resultierende Datei problemlos öffnen.