Розробка додатків MS Excel в Delphi

Створюваний нами додаток 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.

Наші рекомендації

Сollaborator

Hosting Ukraine

АВТОРИЗАЦІЯ