İnsan Kaynakları


Kampanyalar
 
Haber Grubuna Üye Olun
Ad,Soyad:
E-Posta:
Anket
   
Hangi Eğitimi Almak İstiyorsunuz  




 
C# ile Excelden Veri Okumak  

C# ile Excelden Veri Okumak

 Word, Excel gibi COM yeteneği olan uygulamalara C# ile ulaşmak ve işlem yapmak mümkündür.

 

Aşağıdaki uygulamada sabit diskte kayıtlı bir Excel belgesini okuyup içeriğini Listview ile göstereceğiz. Temel bağlantı işlemlerini ve mantığını gördükten sonra bu projeyi geliştirip daha kullanışlı uygulamalar yazabilirsiniz.

 

Önce sadece bir adet çalışma sayfasına sahip ve bizim için önemli 3 tane sütuna sahip bir Excel belgesi oluşturalım.

 

Visual Studio 2005 ile bir Windows projesi oluşturalım.

Toolboxtan projemiz üzerine bir Listview, bir Buttun ve bir OpenFileDialog sürükleyelim.  Formun görünümü aşağıdaki gibi olacaktır.

Şimdi Solution Explorer penceresinde Refences üzerine sağ tıklayarak Add Reference (Referans Ekle) seçelim.

 

Açılan penceredeki COM sekmesinden Microsof Excel 11.0 Object Library bileşenini seçip OK dediğimizde projemizin bin klasörü altına Inteop.Excel.dll ve Interop.Microsoft.Office.Core.dll adlı dll dosyalarının geldiğini göreceksiniz.

Şimdi artık Excel nesnemizi oluşturalım.

 

private Excel.Application ExcelNesnesi = null;

 

Excel açıldı ve formumuzun yapıcısında Excel Application referansı alındı. Excel açılmaz ya da problem olursa diye bir kontrol bloğu yazalım.

 

       public Form1()

        {

            InitializeComponent();

            ExcelNesnesi = new Excel.Application();

 

            if (ExcelNesnesi == null)

            {

                MessageBox.Show("Problem! Dosya Açılamadı.");

                System.Windows.Forms.Application.Exit();

            }

Şimdi Excel belgesi açıldı ve veri okuma işlemi yapabiliriz.

 

Form üzerindeki butonun click olayına belgenin açılması ve verilerin okunması için gerekli kodu yazalım.

 

private void button1_Click(object sender, EventArgs e)

{

    this.openFileDialog1.FileName = "*.xls";

    if (this.openFileDialog1.ShowDialog() == DialogResult.OK)

    {

        Excel.Workbook theWorkbook =

           ExcelNesnesi.Workbooks.Open(

             openFileDialog1.FileName,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing,

             Type.Missing);

 

     

        Excel.Sheets sheets = theWorkbook.Worksheets;

 

        Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);

 

        for (int i = 1; i <= 10; i++)

        {

            Excel.Range range =

                worksheet.get_Range("A" + i.ToString(), "C" + i.ToString());

            System.Array myvalues = (System.Array)range.Cells.Value2;

            string[] strArray = ConvertToStringArray(myvalues);

            listView1.Items.Add(new ListViewItem(strArray));

        }

    }

}

 

openFileDialog1 ile xls uzantılı bir belge aldık. Daha sonra bir Excel Workbook oluşturarak Excel belgemizi açıp bu nesneye transfer ettik.

 

ExcelNesnesi.Workbooks.Open yöntemi parametre olarak sadece dosya ismini almaz. Object Borwser ile incelerseniz dosya ismi ile birlikte 15 tane parametre alır ama bize şu anda sadece dosya ismi alım diğerlerine Type.Missing yazarak boş bıraktık. 15 parametremizi de yönteme geçtik.

 

Workbook nesnemiz içerisindeki sheetleri sheets nesnesine transfer ettik.

 

worksheet adlı nesnemize de kısa bir örnek uygulama yaptığımız için açtığımız excel belgesinin çalışma sayfaları arasından sadece 1.çalışma sayfasını aldık.

 

Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);

 

Yine kısa bir örnek yaptığımız için A, B ve C sütunlarından 10 tane satır okuduk.

 

myvalues adlı bir diziye 10X3 lük bir matris kadar veriyi almış olduk.

 

Bu arada myvalues dizisini yazdığımız ConvertToStringArray yöntemi yardımıyla strArray adlı string dizisine dönüştürdük.

 

string[] ConvertToStringArray(System.Array values)

{

    string[] theArray = new string[values.Length];

    for (int i = 1; i <= values.Length; i++)

    {

        if (values.GetValue(1, i) == null)

            theArray[i - 1] = "";

        else

            theArray[i - 1] = (string)values.GetValue(1, i).ToString();

    }

 

    return theArray;

}

 

 

Listview1 bileşenimize de bu string dizisini ekledik. Ekranda verilerimiz göründü. Tabiki bu şekilde string dizisi olarak verileri elde ettikten sonra ihtiyacımız doğrultusunda her türlü kullanabiliriz.

 


Biz örnek olması açısından Listview bileşeninde görüntüledik. İster gride aktarsınız, ister veritabanına yazarsınız ister grafik çizersiniz. Artık geliştirmek size kalmış.
 
Kaynak   www.csharpturk.net

 


06.11.2012
  Ana Sayfa |Eğitim Garantisi | Hesap Numaraları | Sertifikasyon | SSS | Eğitim Takvimi | Site Haritası
 

Yazılım Uzmanlığı Eğitimi   |  Sistem ve Ağ Uzmanlığı   |  Web Tasarım & Programlama   |  Grafik Tasarım Uzmanlığı   |  JAVA Yazılım Uzmanlığı   |  Ethical Hacker Kursu   |  İleri MS Office Uzmanlığı   |  Linux Server Eğitimi   |  AutoCAD Kursu   |  3D Max Mimari   |  3DS Max Kursu Ankara   |  SolidWorks Kursu   |  CAD/CAM CNC Kursu   |  Photoshop Kursu   |  C# Sharp Kursu   |  Bilgisayar Kursu   |