Szorzótábla
Írjunk Delphi
alkalmazást, mely létrehoz egy Excel munkafüzetet, és benne egy munkalapot. A
program a munkalapot jelenítse meg, a munkalap A1:K11
celláiban helyezzen egy szorzótáblát, majd mentse a munkafüzetet SzorzoTBL néven, végül zárja be az Excel táblázatkezelőt.
A szokásos előkészítések után, a főformon helyezzünk el két parancsgombot. Az egyik felirata
legyen Szorzótábla, a másiké Kilépés. A Szorzótábla parancsgomb megnyomására a
program hajtsa végre a fentebb kitűzött feladatát. Kilépés gombra a program
fejeződjön be. Az Excel kapcsolat felvétele érdekében szükség van a Servers
palettáról a következőkre: ExcelApplication, ExcelWorkBook és ExcelWorksheet.
Helyezzünk egy-egy példányt ezekből a formunkra (én
átneveztem őket: svExcelAlkalmazas, svExcelMunkafuzet és svExcelMunkalap-ra).
A form szerkesztési nézetben:
A futtatáshoz az Uses
szakaszban a következő Unit-okra van szükség: ActiveX, ExcelXP,
OleServer. ExcelXP helyett
szükség szerint Excel2000-et kell használatba venni. Futtatás előtt ezek
meglétét le kell ellenőrizni.
A létrehozott Munkalap:
A program listája:
unit UDESzorzoTBL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
ActiveX, ExcelXP, OleServer,
Dialogs, StdCtrls;
type
TfmDESorzoTBL = class(TForm)
btSzorzoTBL: TButton;
btKilepes: TButton;
svExcelAlkalmazas: TExcelApplication;
svExcelMunkafuzet: TExcelWorkbook;
svExcelMunkalap: TExcelWorksheet;
procedure btKilepesClick(Sender: TObject);
procedure btSzorzoTBLClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmDESorzoTBL: TfmDESorzoTBL;
implementation
{$R *.dfm}
procedure TfmDESorzoTBL.btKilepesClick(Sender: TObject);
begin
Close;
end;
procedure TfmDESorzoTBL.btSzorzoTBLClick(Sender: TObject);
Var LCID: Integer;
Ws: String;
I, J: Word;
begin
//alapértelemezett mappa
GetDir(0,Ws);
//az excel megnyitása
LCID:= GetUserDefaultLCID;
With svExcelAlkalmazas Do
Begin
Connect;
Visible[LCID]:= True;
//jóváhagyás kikapcsolása
DisplayAlerts[LCID]:= False;
//munkafüzet létrehozása
svExcelMunkafuzet.ConnectTo(WorkBooks.Add(TOleEnum(xlWBATWorkSheet),LCID));
End;
//munkalap létrehozása
With svExcelMunkalap Do
Begin
ConnectTo(svExcelMunkafuzet.Worksheets[1] As _WorkSheet);
//a lap orientációjának beállítása: fekvő
PageSetup.Orientation:= 2;
//a cellák töltése
With Cells Do
Begin
Item[1,1].Value:= '*';
For I:= 1 To 10 Do
Begin
Item[1,I+1].Value:= I;
Item[I+1,1].Value:= I;
End;
For I:= 1 To 10 Do For J:= 1 To 10 Do Item[I+1,J+1]:= I*J;
End;
//mentés
SaveAs(Ws+'\SzorzoTBL');
End;
//kapcsolat zárása
svExcelMunkalap.Disconnect;
svExcelMunkafuzet.Disconnect;
svExcelAlkalmazas.Quit;
svExcelAlkalmazas.Disconnect;
end;
end.