WebElektronika

Excel használata Interop-ok segítségével

person access_time 2016.08.16.
Megnézünk most egy office alkalmazást, egy Excel file-t fogunk olvasni és írni. A programot C# nyelven készítjük el és az Interop szerelvényt fogjuk alkalmazni, amely akár NuGet segítségével is telepíthető, ha nem lenne a Visual Studio-nkban megtalálható.


Indítsuk el a Visual Studio-t és hozzunk létre egy Console projektet, amelyenek a neve legyen ConsoleExcel1 (1. ábra). 

kep
1. ábra   A Console projekt létrehozása
 

A projektünkhöz hozzá kell adni a Microsoft.Office.Interop.Excel szerelvényt. Ezt a Solution Explorer Reference könyvtáránál tudjuk megtenni (2. ábra). Természetesen telepíthető ez a szerelvény a NuGet-ként is.

kep
2. ábra   A Microsoft.Office.Interop.Excel szerelvény hozzáadása a projektünkhöz
 

Készítsünk most egy excel file-t (3. ábra), amelynek a tartalmát kiolvassuk, illetve módosítani is fogjuk. 

kep
3. ábra   A felhasznált excel file
 

Az első programunk segítségével a cellák értékeit tudjuk kiolvasni. Először beolvassuk az excel file-t, majd létrehozzuk az ExcelApp nevű példányt az Application osztályból. Ez az osztály több névtérben, szerelvényben is megtalálható, ezért írtuk ki ennek az osztálynak a teljes elérési útvonalát.

Ezt követően megnyitjuk a file-unkat, és megadjuk azt is, hogy melyik lapból ("Munka1") akarunk adatokat kiolvasni.

Az "ieR" változóban tároljuk el a felhasznált sorok számát, majd az első oszlop celláit kiolvassuk és megjelenítjük a for ciklus segítségével.

class Program
    {
        static void Main(string[] args)
        {
            string fileNev = "d:\\WebElektronika\\pelda.xlsx";
            Microsoft.Office.Interop.Excel.Application ExcelApp = 
                new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Range ieR;

            Microsoft.Office.Interop.Excel.Workbook wb = ExcelApp.Workbooks.Open(fileNev);

            Microsoft.Office.Interop.Excel.Worksheet sh = wb.Sheets["Munka1"];
            Microsoft.Office.Interop.Excel.Range excelRange = sh.UsedRange;
            ieR = sh.UsedRange;
            
            for (int i = 2; i < ieR.Rows.Count + 1; i++)
            {
                Console.WriteLine(sh.Cells[i, 1].Value.ToString());
            }
            Console.ReadLine();
        }
    }

 

A Console ablakon megjelenítjük a hét napjait, tehát kiíratjuk az első oszlop tartalmát (4. ábra).


Ha érdeklődik a cikk teljes tartalma után, kérjük, lépjen be a WebElektronika oldalára.

     Köszönjük.