imonah

Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору gryzchik Вот тебе кусок кода, который открывает Excel и занносит в него данные из СтрингГрида. Передалай по аналогии, все необходимые функции тут есть. Код: procedure TReleaseF.ExcelBtClick(Sender: TObject); var Workbook,Range,Cell1,Cell2,ArrayData:Variant; // TemplateFile : String; i,j:integer; RowCount,ColCount:integer; begin // Координаты левого верхнего угла области, //в которую будем выводить данные if (ex<1) then begin BeginCol := 1; BeginRow := 1; end; // Размеры выводимого массива данных RowCount := SG_obl.RowCount; ColCount := SG_obl.ColCount; // Создание Excel if (ex<1) then ExcelApp := CreateOleObject('Excel.Application'); // Отключаем реакцию Excel на события, //чтобы ускорить вывод информации ExcelApp.Application.EnableEvents := false; // Создаем Книгу (Workbook) // Если заполняем шаблон, то // Workbook := ExcelApp.WorkBooks.Add('C:\MyTemplate.xls'); if (ex<1) then Workbook := ExcelApp.WorkBooks.Add else Workbook:=ExcelApp.WorkBooks[1]; // Создаем Вариантный Массив, //который заполним выходными данными ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); // Заполняем массив for i:=1 to SG_obl.RowCount do for j:=1 to SG_obl.ColCount do ArrayData[i,j] := SG_obl.Cells[j-1,i-1]; // Левая верхняя ячейка области, //в которую будем выводить данные 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; ex:=ex+1; BeginRow:=BeginRow+RowCount+1; // ExcelBt.Enabled:=false; end; |
---------- Не относитесь к жизни слишком серьезно, вам все равно не уйти из нее живым :) |
| Всего записей: 1376 | Зарегистр. 07-02-2003 | Отправлено: 15:11 04-10-2005 | Исправлено: imonah, 15:13 04-10-2005 |
|