Delphi-Help

Главная Статьи TDBGrid Как из DBGrid перенести данные в существующий Excel файл

Как из DBGrid перенести данные в существующий Excel файл

Оцените материал
(0 голосов)


Как из DBGrid перенести данные в существующий Excel файл

//Если не обезательно из DBGrid-а... то вот пример из Query ...
// Если есть вопросы то ¹ ACQ 134087719
 
// имя файла шаблона и откуда (можно TTable)
Procedure SendtoExcel(ShFile: String; Querys: TQuery);
Var
   ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData: Variant;
   BeginCol, BeginRow, j: integer;
   RowCount, ColCount: Integer;
Begin
   BeginCol := 1;
   BeginRow := 3;
 
 // Размеры выводимого массива данных
   RowCount := Querys.RecordCount;
   ColCount := Querys.FieldDefs.Count;
 
 // Создание Excel
   ExcelApp := CreateOleObject('Excel.Application');
 
 // Отключаем реакцию Excel на события, чтобы ускорить вывод информации
   ExcelApp.Application.EnableEvents := false;
 
 //  Создаем Книгу (Workbook)
 //  Если заполняем шаблон, то
   Workbook := ExcelApp.WorkBooks.Add(ShFile);
   ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
 
 // Заполняем массив
   Querys.DisableControls;
   Querys.First;
   While Not Querys.eof Do
   Begin
       For J := 1 To Querys.FieldDefs.Count Do
       Begin
           ArrayData[Querys.RecNo, J] :=
            Querys.FieldbyName(Querys.FieldDefs.Items[j - 1].DisplayName).value;
       End;
       Querys.Next;
   End;
 
   Querys.EnableControls;
 
//     Левая верхняя ячейка области, в которую будем выводить данные
   Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
 // Правая нижняя ячейка области, в которую будем выводить данные
   Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + RowCount - 1,
    BeginCol + ColCount - 1];
 
 // Область, в которую будем выводить данные
   Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
 
 // А вот и сам вывод данных
 // Намного быстрее поячеечного присвоения
   Range.Value := ArrayData;
 
 // Делаем Excel видимым
   ExcelApp.Visible := True;
End;

 

Авторизация



Счетчики