Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление данных из 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо