Главная страница | Продукты | Delphi | Юмор | Контакт
Использование сервера автоматизации Excel
Для использования серверов автоматизации необходимо подключить модуль comobj
Пример работы с Excel 97/2000 на Delphi 3(Zip 23 kb)
Пример работы с Excel
Копирование данных из TDataSet в Excel
Пример работы с Excel
В следующей процедуре реализовано открытие нового экземпляра Excel,
создание рабочих листов, заполнение ячеек и создание диаграммы
procedure TfmMain.btExample6Click(Sender: TObject);
var
Excel,WorkBook,Sheet1,Sheet2,Chart:variant;
Sheet,SeriesCollection:Variant;
vrange:variant;
i,j:integer;
begin
Excel:=CreateOleObject('Excel.Application');//создаем экземпляр объекта автоматизации
Excel.Visible:=cbExcelVisible.Checked;
Excel.SheetsInNewWorkbook := 2;//колическтво рабочих листов в создаваемой книге
WorkBook:=Excel.Workbooks.Add;//создание новой рабочей книги
Sheet1:=WorkBook.WorkSheets[1];
Sheet2:=WorkBook.WorkSheets[2];
Chart:=WorkBook.Charts.Add;//создание новой диаграммы
Sheet1.Name:='Table 1';//переименование рабочего листа
Sheet2.Name:='Table 2';
for j:=1 to 2 do begin //заполнение ячеек
Sheet:=WorkBook.WorkSheets[j];
for i:=1 to 11 do begin
Sheet.Cells.Item[i,1].Value:=i;
Sheet.Cells.Item[i,2].Value:=i*2;
end;
end;
vrange:=Sheet1.range['A1:A10'];
SeriesCollection:=Chart.SeriesCollection;
SeriesCollection.Add(vrange);
vrange:=Sheet2.Range['B1:B10'];
SeriesCollection.Add(vrange);
Excel:=UnAssigned;
end;
Копирование данных из TDataSet в Excel
procedure DataSetToExcel(DataSet:TDataSet;DataAsString:boolean);
var
Excel, WorkBook, Sheet, v : Variant;
Col, Row, i : Integer;
begin
Excel := CreateOleObject('Excel.Application');
try
Excel.SheetsInNewWorkbook := 1;
WorkBook := Excel.WorkBooks.Add;
Sheet := WorkBook.WorkSheets[1];
with DataSet do try
DisableControls;
Row := 2;
Col := 1;
for i := 0 to FieldCount-1
do if Fields[i].Visible then begin
Sheet.Cells[Row, Col] := Fields[i].DisplayName;
Inc(Col);
end;
Sheet.Rows[Row].Font.Bold := True;
Inc(Row);
First;
while NOT EOF do begin
Col := 1;
for i := 0 to FieldCount-1
do if Fields[i].Visible then begin
if DataAsString then begin
Sheet.Cells[Row, Col] :=Fields[i].DisplayText;
end else begin
v := Fields[i].Value;
Sheet.Cells[Row, Col] := v;
end;
Inc(Col);
end;
Next;
Inc(Row);
end;
finally
EnableControls;
end;
finally
Sheet.Cells.Columns.AutoFit;
Excel.Visible := True;
end;
end;
Начало
Главная страница | Продукты | Delphi
| Юмор | Контакт