Добрый день, Знаю, эта тема уже не раз обсуждалась, только сама не знаю в чем проблема, помогите разобраться!!! вобщем вывожу из Query запроса информацию в Excel, она выводится только не вся, а только та, что отожбражается в dbGrid-e вот код:
| Код | procedure TForm2.Button1Click(Sender: TObject); var XL, Cell1, Cell2, ArrayData: Variant; RowCount: integer; BeginCol, BeginRow,i,ColCount:byte; begin BeginCol := 1; //начальные координаты ячейки BeginRow := 2; RowCount := Form2.OraQuery1.RecordCount; //количество строк ColCount := 18; //количество столбцов XL := CreateOleObject('Excel.Application'); //создаем Excel XL.Application.EnableEvents := false; // отключаем реакцию Excel на событиядля ускорения XL.WorkBooks.Add; // добавляем книгу XL.Rows.Rows[1].Font.Bold:=true; //жирный шрифт XL.Rows.Rows[1].Font.Size:=10; //азмершрифта XL.Rows.Rows[1].WrapText := True; //перенос текста по словам XL.Rows.Rows[1].HorizontalAlignment := 3;//выравнивание по центру по горизонтали XL.Rows.Rows[1].VerticalAlignment := 2;//выравнивание по центру по ветикали XL.Cells[1,1]:= 'Date';//создаем шапку XL.Cells[1,2]:='Time'; XL.Cells[1,3]:='Source'; XL.Cells[1,4]:='Destination'; XL.Cells[1,5]:='Packets'; XL.Cells[1,6]:='Bytes'; XL.Columns.Columns[1].ColumnWidth:=10;//размер столбцов XL.Columns.Columns[2].ColumnWidth:=10; XL.Columns.Columns[3].ColumnWidth:=29; XL.Columns.Columns[4].ColumnWidth:=29; XL.Columns.Columns[5].ColumnWidth:=10; XL.Columns.Columns[6].ColumnWidth:=10;
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); //создаем вариантный массив для //заполнения данных из запоса Form2.OraQuery1.First; for i := 1 to RowCount do begin ArrayData[i,1] := Form2.OraQuery1['date_']; ArrayData[i,2] := Form2.OraQuery1['time_']; ArrayData[i,3] := Form2.OraQuery1['source']; ArrayData[i,4] := Form2.OraQuery1['destination']; ArrayData[i,5] := Form2.OraQuery1['packets']; ArrayData[i,6] := Form2.OraQuery1['bytes']; Form2.OraQuery1.Next; end; Cell1 := XL.Cells[BeginRow-1, BeginCol]; // левая верхняя ячейка области в которую //будем вводить данные Cell2 := XL.Cells[BeginRow+RowCount-1, BeginCol + ColCount-1];//правая нижняя ячейка области XL.Range[XL.Cells[BeginRow, BeginCol], Cell2].Value := ArrayData; //вывод данных XL.Visible := true; end;
|
|