Создаваемое нами приложение Delphi может получать доступ к объектам Excel несколькими способами. Наиболее распространённые из них: использование объектов Variant и технология ADO.
Я не буду полностью расписывать все примеры того, как можно в Delphi обрабатывать данные из Excel, а просто добавлю исходный код программы, которую создал, делая урок по работе Delphi и Excel. В коде есть комментарии к каждому действию.
Плюс, вы можете посмотреть видео по разработке приложений MS Excel в Delphi
Код из видео:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, COMObj, Vcl.StdCtrls; // Подключаем модуль COMObj для работы с COM-интерфейсами
type
TForm1 = class(TForm)
ButtonCreateExcel: TButton;
ButtonCloseExcel: TButton;
ButtonopenExcel: TButton;
ButtonOpenSheet1: TButton;
ButtonOpenSheetLargo: TButton;
ButtonOpenSheet2: TButton;
Edit1: TEdit;
ButtonAddC3: TButton;
Edit2: TEdit;
Button1: TButton;
ButtonAddFormula: TButton;
ButtonFillCell: TButton;
ButtonFillColStr: TButton;
ButtonCellParam: TButton;
ButtonCellColParam: TButton;
procedure ButtonCreateExcelClick(Sender: TObject);
procedure ButtonCloseExcelClick(Sender: TObject);
procedure ButtonopenExcelClick(Sender: TObject);
procedure ButtonOpenSheet1Click(Sender: TObject);
procedure ButtonOpenSheetLargoClick(Sender: TObject);
procedure ButtonOpenSheet2Click(Sender: TObject);
procedure ButtonAddC3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ButtonAddFormulaClick(Sender: TObject);
procedure ButtonFillCellClick(Sender: TObject);
procedure ButtonFillColStrClick(Sender: TObject);
procedure ButtonCellParamClick(Sender: TObject);
procedure ButtonCellColParamClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
XlApp, WBook, WSheet:OleVariant; // переменные для доступа к объектам MS Excel
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application'); // содаем приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.Add; // создаем рабочую книгу
WSheet:=XlApp.Worksheets[1];
WSheet.Activate;
WSheet.Cells.Item[2,1].Value:=Edit2.Text;
end;
procedure TForm1.ButtonAddC3Click(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application'); // содаем приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.Add; // создаем рабочую книгу
WSheet:=XlApp.Worksheets[1];
WSheet.Activate;
WSheet.Range['C3'].Value:=Edit1.Text;
end;
procedure TForm1.ButtonAddFormulaClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
XlApp.Workbooks.Add;
XlApp.ActiveSheet.Range['A5'].Formula:= '=SUM(A1,A2)*5'; // формула - сложить значение ячеек А1 и А2 и умножить результат на 5
end;
procedure TForm1.ButtonCellColParamClick(Sender: TObject);
var
F:OleVariant; // переменная для идентификации объекта Font
begin
XlApp:=CreateOleObject('Excel.Application'); // содаем приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.Add; // создаем рабочую книгу
WSheet:=XlApp.Worksheets[1];
WSheet.Activate;
F:=WSheet.Range['A:A'].Font; // выбираем столбец A и идинтифицируем объект Font
F.Name:='Arial'; // устанавливаем тип шрифта Arial
F.Size:=28; // размер шрифта
F.FontStyle:='Bold'; // стиль
F.Color:=RGB(255,0,0); // цвет
end;
procedure TForm1.ButtonCellParamClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application'); // содаем приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.Add; // создаем рабочую книгу
WSheet:=XlApp.Worksheets[1];
WSheet.Activate;
WSheet.Range['B5'].Select; // выбираем ячейку
XlApp.ActiveCell.Value := 'Это мой текст'; // вводим в неё текст
XlApp.ActiveCell.Font.Size := 24; // размер шрифта
XlApp.ActiveCell.Font.FontStyle := 'Bold'; // стиль шрифта
XlApp.ActiveCell.Font.Name := 'Arial'; // тип шрифта
XlApp.ActiveCell.Font.Color := RGB(150,0,50); // цвет шрифта
end;
procedure TForm1.ButtonCloseExcelClick(Sender: TObject);
begin
if not VarIsEmpty(XlApp) then
XlApp.Quit; // закрываем приложение Excel
end;
procedure TForm1.ButtonCreateExcelClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application'); // содаем приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.Add; // создаем рабочую книгу
end;
procedure TForm1.ButtonFillCellClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
XlApp.Workbooks.add;
XlApp.ActiveSheet.Range['C5'].Select; // делаем активной (выделяем) ячейку C5
XlApp.ActiveCell.Interior.Color:=RGB(0,255,0); // устанавливаем цвет заливки для ячейки
end;
procedure TForm1.ButtonFillColStrClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application'); // Создает приложение Excel
XlApp.Visible:=True; // делаем приложение видимым
XlApp.Workbooks.add; // добавляем рабочую книгу
WSheet:=XlApp.Worksheets[1];// делаем активным лист №1
WSheet.Activate;
WSheet.Range['B:B'].Interior.Color:=RGB(0,255,0); // устанавливаем цвет заливки столбца B
WSheet.Range['2:2'].Interior.Color:=RGB(0,0,255); // устанавливаем цвет заливки строки 2
end;
procedure TForm1.ButtonopenExcelClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
WBook:=XlApp.Workbooks.Open('d:\\prise.xlsx'); // путь к файлу Excel
end;
procedure TForm1.ButtonOpenSheet1Click(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
WBook:=XlApp.Workbooks.Open('d:\\prise.xlsx'); // путь к файлу Excel
WSheet:=XlApp.Worksheets[2]; // активизуруем лист 2
WSheet.Activate;
end;
procedure TForm1.ButtonOpenSheet2Click(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
WBook:=XlApp.Workbooks.Open('d:\\prise.xlsx'); // путь к файлу Excel
XlApp.Worksheets[2].Activate;
end;
procedure TForm1.ButtonOpenSheetLargoClick(Sender: TObject);
begin
XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=True;
WBook:=XlApp.Workbooks.Open('d:\\prise.xlsx'); // путь к файлу Excel
WSheet:=XlApp.Worksheets['LARGO']; // активизируем лист LARGO
WSheet.Activate;
end;
end.