Windows - Excel programozása weblapról

forráskód letöltése
Cikkünkben bemutatjuk, hogy lehet egy weboldalról elérni és programozni a Microsoft Excel alkalmazást. Készítünk egy egyszerű weboldalt egy nyomógombbal ellátva és erre kattintva elindítjuk az Excel-t, adatokkal feltöltünk egy diagrammot, végül az egészet megjelenítjük a képernyőn. A példa alapján más hasonló programozási ötletek is megvalósíthatók.
Cikkünkhöz mellékeltük az alábbiakban létrehozott HTML oldalt. Futtatásához magyar nyelvű Excel esetében egy, a cikkben olvasható változtatás szükséges.
A megvalósítás első lépése az elkészítendő HTML oldal alapvető szerkezetének létrehozása. Ezután létrehozunk egy nyomógombot az oldalon "Start Excel" felirattal. Az Excel-t VBScript-ből fogjuk elérni és programozni. A VBScript előnye, hogy közvetlenül a Windows-ban is futtatható és beépíthető HTML oldalakba is. Ezenkívül a kódja könnyen átalakítható más programozási nyelvek (pl.: Delphi, C#) forráskódjává. Meg kell adnunk a weboldalon, hogy milyen szkriptnyelvet alkalmazunk.
<HTML>
<BODY>
<INPUT id=button1 name=button1 type=button value="Start Excel">
<SCRIPT LANGUAGE="VBScript">
Kezeljük le a nyomógomb lenyomásának eseményét (onclick metódus) egy eljárásban és indítsuk el az Excel-t egy új "Excel.Application" objektum létrehozásával. Ez azonban még nem elegendő az Excel képernyőn való láthatóvá tételéhez. Szükség lesz a "Visible" tulajdonság "True" értékre állítására.
       sub button1_onclick()
          dim app
          set app = createobject("Excel.Application")
          app.Visible = true
Hozzunk létre egy új munkafüzetet (workbook) és az "add" metódussal adjuk hozzá az Excel-hez.
          dim wb
          set wb = app.workbooks.add
Bevezetőben említettük, hogy egy diagrammot szándékozunk készíteni. Ahhoz, hogy jól látható legyen, töltsük fel adatokkal. Csináljuk ezt úgy, hogy létrehozunk egy kétdimenziós tömböt és egy FOR ciklussal generáltatunk hozzá értékeket.
          dim arr(19,9)
          for i = 1 to 20
             for j = 1 to 10
                arr(i-1,j-1) = i*j
             next
          next
Térjünk vissza az Excel-hez. Meg kell határozni a munkafüzet egy területét, ahol a diagrammot alkotó adatok el fognak helyezkedni és adjuk is hozzá őket.
        dim rng
          set rng = wb.Activesheet.Range("A1").Resize(20,10)
          rng.value = arr
A meglévő adatokból generáltassunk egy diagrammot az "add" metódussal. Fontos, hogy beállítsuk az adatforrás ("SetSourceData") és a diagramm helyét. Ezenkívül elég, ha csak néhány tulajdonságát állítjuk be, például a típusát ("CharType").
Ami még szintén fontos, hogy ha magyar nyelvű Excel-el dolgozunk a "Sheet1" értéket írjuk át "Diagram1"-re!
          wb.Charts.Add
          wb.ActiveChart.ChartType = 70 'xl3dPieExploded
          wb.ActiveChart.SetSourceData rng, 2 ' xlColumns
          wb.ActiveChart.Location 2, "Sheet1" 'xlLocationAsObject
Vigyünk bele némi látványt is: forgassuk el az egészet 360 fokkal. A mai gyors gépeken ez hamar megtörténik, de talán nem is ez a lényeg, hanem hogy lássuk, miként lehet a forgatást megvalósítani.
          for i = 1 to 360 step 30
             wb.activechart.rotation = i
          next
Utolsó lépésként engedélyezzük a felhasználó hozzáférését ("UserControl = true") az elkészült munkafüzethez és zárjuk a HTML tagokat.
          app.UserControl = true
       end sub
</SCRIPT>
</BODY>
</HTML>
Mentsük el az egészet például "Excel.html" néven és próbáljuk ki, amit csináltunk. Töltsük be az Internet Explorer-be és kattintsunk a nyomógombra. A Windows és külső vírusirtók védelmi beállításaitól függően lehet, hogy felbukkan egy ablak engedélyt kérve a futtatásra. Adjuk meg és elindul az Excel létrehozva a diagrammot.