Задача
Создать документ Exel и заполнить его данными.
Решение
uses ComObj;
uses ComObj;
procedure TForm1.Button2Click(Sender: TObject);
var
Excel, WorkBook, Sheet: Variant;
Col, Row: Integer;
begin
Excel := CreateOleObject('Excel.Application');
try
Excel.SheetsInNewWorkbook := 1;
WorkBook := Excel.WorkBooks.Add;
Sheet := WorkBook.WorkSheets[1];
for Row := 1 to 10 do
for Col := 1 to 20 do
begin
Sheet.Cells[Row, Col] := Row * Col;
if (Row = 1) or (Col = 1) then
Sheet.Cells[Row, Col].Font.Bold := True;
end;
finally
Sheet.Cells.Columns.AutoFit;
Excel.Visible := True;
end;
end;
Code language: Delphi (delphi)
Комментарий
Вышеприведённый код, размещённый на обработчике кнопки, создаёт страницу в документе Excel, используя для этого механизмы OLE. Потом заполняет ячейки данными. Данные в первой строке и первой колонке выделяются жирным шрифтом:
Верификация
Delphi XE5, Win7, MS Office Excel 2007
Задача
Открыть файл Excel и прочитать данные
Решение
var
MsExcel: Variant;
Values: OLEVariant;
ColCount: integer;
RowCount: integer;
procedure TfrmMain.btnOpenFileClick(Sender: TObject);
var
i: integer;
begin
try
if odlMain.Execute then
begin
edtFileName.Text := odlMain.FileName;
// Инициализация переменной Excel
// в простейшем случае можно осуществить так:
MsExcel := CreateOleObject('Excel.Application');
// Открытие существующей книги только для чтения:
MsExcel.Workbooks.Open[edtFileName.Text, 0, True];
// загрузить данные в массив
Values := MsExcel.ActiveSheet.UsedRange.Value;
// число заполненных колонок
ColCount := MsExcel.ActiveSheet.UsedRange.Columns.Count;
// число заполненных строк
RowCount := MsExcel.ActiveSheet.UsedRange.Rows.Count;
// Закрытие Excel:
MsExcel.ActiveWorkbook.Close;
MsExcel.Application.Quit;
//
btnOK.Enabled := True;
end;
except
on E: Exception do
ShowMessage(E.ClassName + ' ошибка с сообщением : ' + E.Message);
end;
end;
Code language: Delphi (delphi)
Комментарий
В обработчике диалога открытия файла пишем вышеприведённый код. В результате данные загружаются в массив Values из области таблицы, в которой есть данные:
Верификация
Delphi XE10.2, Win7 x64, Excel 2016