procedure TForm1.SendToExcel(aDataSet: TDataSet); var PreviewToExcel: TExcelApplication;
RangeE: Excel2000.Range; //or RangeE: Excel97.Range I, Row: Integer;
Bookmark: TBookmarkStr; begin PreviewToExcel := TExcelApplication.Create(Self);
PreviewToExcel.Connect;
PreviewToExcel.Workbooks.Add(NULL, 0);
RangeE := PreviewToExcel.ActiveCell;
for I := 0 to aDataSet.Fields.Count - 1 do
begin RangeE.Value := aDataSet.Fields[I].DisplayLabel;
RangeE := RangeE.Next; end;
aDataSet.DisableControls; try Bookmark := aDataSet.Bookmark; try aDataSet.First;
Row := 2; while not aDataSet.EOF do
begin //Write down Record As Row in msExcel RangeE := PreviewToExcel.Range['A' + IntToStr(Row), 'A' + IntToStr(Row)]; for I := 0 to aDataSet.Fields.Count - 1 do
begin RangeE.Value := aDataSet.Fields[I].AsString;
RangeE := RangeE.Next; end;
aDataSet.Next;
Inc(Row); end; finally aDataSet.Bookmark := Bookmark; end; finally aDataSet.EnableControls; end;
//Creating Preview from Range A1..ColumnX
//Calculating ASCII 64 (Character Before "A") With Dataset FieldsCount
//This Method can only handle range A1..Z?, if want to be excel column type
//support, exp "AA"/"IV" RangeE := PreviewToExcel.Range['A1', chr(64 + aDataSet.Fields.Count) + IntToStr(Row - 1)];