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, MessagesSysUtilsVariantsClasses

  GraphicsControlsForms,
  ActiveX, ExcelXPOleServer,
  DialogsStdCtrls

type
  TfmDESorzoTBL = class(TForm)
    btSzorzoTBLTButton;
    btKilepesTButton;
    svExcelAlkalmazasTExcelApplication;
    svExcelMunkafuzetTExcelWorkbook;
    svExcelMunkalapTExcelWorksheet;
    procedure btKilepesClick(SenderTObject);
    procedure btSzorzoTBLClick(SenderTObject);
  private
    Private declarations }
  public
    Public declarations }
  end;

var
  fmDESorzoTBLTfmDESorzoTBL;

implementation

{$R *.dfm}

procedure TfmDESorzoTBL.btKilepesClick(SenderTObject);
begin
  Close;
end;

procedure TfmDESorzoTBL.btSzorzoTBLClick(SenderTObject);
Var LCID: Integer;
    WsString;
    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.