Разработка приложений 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 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.
Вас может заинтересовать
Разработка приложений 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 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.