You drive all the data of the grid into the array Variant (ArrayData: Variant), then you copy them to Excel, for example (delphi):
for i := 2 to (DM.IBQ_main.RecordCount + 1) do begin ArrayData[i, 1] := DM.IBQ_main.FieldByName('ID_0').AsString; ArrayData[i, 2] := DM.IBQ_main.FieldByName('ID').AsString; DM.IBQ_main.Next; end; // Левая верхняя ячейка области, в которую будем выводить данные Cell1 := EA1.Cells.Item[1, 1]; // Правая нижняя ячейка области, в которую будем выводить данные Cell2 := EA1.Cells.Item[DM.IBQ_main.RecordCount + 1, 49]; // Область, в которую будем выводить данные Range := EA1.Range[Cell1, Cell2]; Range.Value2 := ArrayData;