29 Ocak 2008 Salı

C# - Excel sayfalarını OleDb aracılığı ile okunarak DataGridView'da görüntülenmesi


Buradaki "Provider=Microsoft.ACE.OLEDB.12.0;" Office 2007 (12) için dir. Ve daha eski sürümleride başarılı bir şekilde okumaktadır. Office 2007 kullanırsanız Excel dosyasının uzantısının .xlsx olduğunu unutmayın. :=)

using System;
using System.Linq;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Collections.Generic;

namespace DevXpress
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
   
        private void barButton_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            string path = "C:\\Ucret.xlsx";
            gvExcelBilgileri.Columns.Add("Adi", "Adı");
            gvExcelBilgileri.Columns.Add("Soyadi", "Soyadı");
            gvExcelBilgileri.Columns.Add("Ucret", "Ücret");

            using (OleDbDataReader oleDbExcelOkuyucu = ExcelDataGetir(path, "Sayfa1"))
            {
                while (oleDbExcelOkuyucu.Read())
                {
                    gvExcelBilgileri.Rows.Add(oleDbExcelOkuyucu.GetValue(0), oleDbExcelOkuyucu.GetValue(1), oleDbExcelOkuyucu.GetValue(2));
                }
            }
        }

        public OleDbDataReader ExcelDataGetir(string dosyaAdi, string sayfaIsmi)
        {
            OleDbConnection oleDbConnection = new OleDbConnection(String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0; HDR=Yes;""", dosyaAdi));
            OleDbCommand oleDbCommand = new OleDbCommand(String.Format("Select * From [{0}$]", sayfaIsmi), oleDbConnection);
            oleDbConnection.Open();
            OleDbDataReader oleDbOkuyucu = oleDbCommand.ExecuteReader();
            return oleDbOkuyucu;
        }
    }
}


3 yorum:

Adsız dedi ki...

hocam keşke bi deneyip koysaydınız kodu. ellibin tane hata var içinde

Orhan ÖCAL dedi ki...

Merhaba, haklısın gerekli düzenlemeleri yaptım şimdi çalışacaktır. :=)

Aradan kopyala yapıştır olunca sorun çıkıyor.

hacının blogu dedi ki...

datagridview de yapılan değişikliği nasıl update edebilirm