C# - Cellaműveletek Excel-ben

Windows Script Host lehetőségei 11. rész

forráskód letöltése
Cikkünkben még maradunk kicsit a Microsoft programcsomag Excel tagjához kapcsolódó műveleteknél. Példaprogramunkban több műveletet mutatunk be. Az első részben bemutatjuk, hogy milyen módon hívhatók meg egy munkafüzet celláiban a számításokat végző függvények. A cikk második felében ismertetjük, hogyan érhetjük el a munkafüzetben létrehozott grafikont, és ezt hogyan mozgathatjuk alkalmazások között.
Cellaműveletek
A Form SZÁMÍTÁS feliratú füle alatt próbálhatjuk ki azokat a funkciókat, melyek egy adott cellában elérhető beágyazott függvényekhez kapcsolódnak. A megfelelő rádiógomb kijelölése után a SUM, illetve a MAX függvényeket hívhatjuk meg egy adott cellacsoportra.
A WSH11.wsf parancsállomány futtatásakor a CALCULATE nevű szegmensben hívjunk meg kétfajta műveletet.
A megadott rendszermeghajtó gyökerében létrehozunk egy /test nevű mappát, melyben az állományokat létrehozzuk, illetve ide másoljuk a felhasználandó, a példaalkalmazás mappájában elhelyezett fájlokat.
A szokásos módszerrel lekérdezzük a parancssori argumentumokat:
var args = WScript.Arguments;
var newFile;
var type;
try
{
  newFile = args(0);  
  type = args(1);
}
...
Létrehozzuk az Excel objektumot:
var excelApp = WScript.CreateObject("Excel.Application");
Létrehozunk egy új Excel állományt:
var newWB = excelApp.Workbooks.Add();
Létrehozunk egy objektumot az első munkafüzethez:
var sheet1 = newWB.Worksheets("Munka1");
Ha nullát kap az állomány második paraméterként, akkor a B2 és a B12 cellák közötti tartományban generálunk 10 darab véletlen számot:
sheet1.Range("B2:B12").Formula = "=rand()";
A B13-as cellában pedig megjelenítjük a 10 szám összegét:
sheet1.Cells(13,1).Value = "Összesen:";
sheet1.Cells(13,2).Formula = "=SUM(B2:B12)"; 
Majd elmentjük az állományt a test mappába:
newWB.SaveAs(newFile + "Sum.xls");
A MAX függvényt hasonló módon hívjuk meg.
Grafikon másolása, kép beillesztése
A COPY job-ban elhelyezett funkciókkal a Chart.xls állományban található állományt másolhatja át egy Chart.doc néven létrehozott dokumentumba, amennyiben nulla az átadott második parancssori argumentum. Ekkor létrehozunk egy Excel objektum-példányt.
var excelApp = WScript.CreateObject("Excel.Application");
Majd megnyitjuk a Chart.xls fájlt.
var newWB = excelApp.Workbooks.Open(newFile + "Chart.xls");
Kimásoljuk a vágólapra a grafikon objektumát.
newWB.Worksheets(1).ChartObjects(1).CopyPicture();
Létrehozzuk a Word objektum-példányt és egy új dokumentumot.
var wordApp = WScript.CreateObject("Word.Application");
var newDoc = wordApp.Documents.Add();
Beillesztjük a grafikont a vágólapról.
wordApp.Selection.Paste();
Majd elmentjük, illetve bezárjuk az állományokat.
newWB.Close();
newDoc.SaveAs(newFile + "Chart.doc");
newDoc.Close();
A képállomány beillesztéséhez létrehozunk egy Excel állományt.
var newWB = excelApp.Workbooks.Add();
var sheet1 = newWB.Worksheets("Munka1");
Az AddPicture metódus meghívásával a megadott képet az adott pozícióban elhelyezzük, méretét 150x150-esre választva.
sheet1.Shapes.AddPicture(newFile + "1.gif", false, true, 10, 10, 150,150);
Az állományt Picture.xls néven elmentjük a /test mappában.

Windows Script Host lehetőségei cikksorozat