Вот как я делаю экспорт... Вроде попроще код, может кому пригодится
Код:
procedure TfMain.Button5Click(Sender: TObject);
var
XL, XArr: Variant;
i: Integer;
j: Integer;
begin
XArr:=VarArrayCreate([1,DM.qTabl1.FieldCount],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add;
XL.Range['A1','A1'].Value := 'заголовок 1';
XL.Range['B1','B1'].Value := '...';
j := 2;
DM.qTabl1.First;
while not DM.qTabl1.Eof do
begin
i:=1;
while i<=DM.qTabl1.FieldCount do
begin
XArr[i] := DM.qTabl1.Fields[i-1].Value;
i := i+1;
end;
XL.Range['A'+IntToStr(j),
CHR(64+DM.qTabl1.FieldCount)+IntToStr(j)].Value := XArr;
DM.qTabl1.Next;
j:=j+1;
end;
XL.Range['A1',CHR(64+DM.qTabl1.FieldCount)+IntToStr(j)].select;
XL.Selection.Font.Name:='Arial cur';
XL.Selection.Font.Size:=10;
XL.Selection.ColumnWidth:=10;
XL.Selection.RowHeight:=15;
with SaveDialog1 do
if Execute then
xl.ActiveWorkbook.SaveAs(FileName);
XL.Range['A1','A1'].select;
XL.visible:=true;
end;