![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление данных из Query в Excel
AlexDok © (2003-11-06 10:57:00)
Здравствуйте мастера. Подскажите, как в имеющийся файл Excel (шаблон) добавить данные из Query. Если можно примерчик. Спасибо.
AlexDok (2003-11-06 18:28:00) [1]
Спасибо всем, кто ответил. С выходными Вас, господа.
Кулюкин Олег (2003-11-06 11:07:00) [2]
http://www.delphikingdom.ru/helloworld/excelsm.htm
vovchik (2003-11-06 11:03:00) [3]
это добавление данных из Grida но переделдаешь и будет из Query вставлять, по идее код рабочий, БЫЛ
procedure TForm4.Button1Click(Sender: TObject);
var
ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData : Variant;
TemplateFile : String;
BeginCol, BeginRow : integer;
RowCount, ColCount, i, j : integer;
begin
// Координаты левого верхнего угла области, в которую будем выводить данные
BeginCol := 1;
BeginRow := 5;
// Размеры выводимого массива данных
RowCount := dbgrid1.Columns.Count;
ColCount := dbgrid1.FieldCount;
// Создание Excel
ExcelApp := CreateOleObject("Excel.Application");
// Отключаем реакцию Excel на события, чтобы ускорить вывод информации
ExcelApp.Application.EnableEvents := false;
// Создаем Книгу (Workbook)
// Если заполняем шаблон, то
//Workbook := ExcelApp.WorkBooks.Add("C:\MyTemplate.xls");
Workbook := ExcelApp.WorkBooks.Add;
// Создаем Вариантный Массив, который заполним выходными данными
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
// Заполняем массив
for I := 1 to 10 do //
for J := 1 to 10 do // ColCount
ArrayData[RowCount, J] := J + I;
// Левая верхняя ячейка области, в которую будем выводить данные
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;