C# İLE EXCELDEN VERİ OKUMAK

Ana sayfa Forumlar PROGRAMLAMA C# C# İLE EXCELDEN VERİ OKUMAK

1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #13208
    özgür
    Katılımcı

    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ış. Bu makale ilgili soru ve önerilerinizi C#Türk Forumda http://www.csharpturk.net/forum/forum_posts.asp?TID=15 urlsi altında sorabilirsiniz. Bu makalede kullandığımız örnek uygulama C#Türk Download bölümünde mevcuttur.

    Sizler de bu örnek uygulamayı baz alarak geliştirdiğiniz uygulamalarınızı bize ulaştırırsanız diğer C# programcıları ile paylaşmak için sitemize ekleriz.
    ....NOT:Tamamı Alıntıdır....

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Bana Ders Anlat © 2008-2017