Excel Verilerini GridView'de Listeleme

Excel dökümanı bir veritabanı tablosu olarak da kullanılabilir.
Bizde bu makalemizde FileUpload nesnesinden seçtiğimiz excel dökümanı içersindeki verileri GridView nesnesinde listeleme uygulamasını öğrenicez.
Öncelikle Web.Config dosyamızın içersine excel dökümanını okumak için 2 adet connection string ekliyoruz. Birde Seçilen excel dökümanını geçici olarak tutacağımız klasör için bir "appsetting" ekliyoruz.


    








Daha sonra .aspx sayfası açıyoruz. Sayfamızın içersine;
FileUpload nesnesi,
Buton nesnesi,
GridView nesnesi ekliyoruz.




html bölümündeki eklemelerimizi yaptıktan sonra kod bölümüne geçebiliriz.
Excel gökümanını okumak için hazırladığımız metodu ekliyoruz.

private void ExceliGridVieweAktar(string FilePath, string Extension)
{
    //Bu alanda excel dökümanının hazırladığımız connection stringlerler türünü belirliyoruz.
    string conStr = "";
    switch (Extension)
    {
        case ".xls": //Excel 97-03
            conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"]
                           .ConnectionString;
            break;
        case ".xlsx": //Excel 07
            conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"]
                           .ConnectionString;
            break;
    }
    conStr = String.Format(conStr, FilePath, "Yes");
    OleDbConnection connExcel = new OleDbConnection(conStr);
    OleDbCommand cmdExcel = new OleDbCommand();
    OleDbDataAdapter oda = new OleDbDataAdapter();
    DataTable dt = new DataTable();
    cmdExcel.Connection = connExcel;
    //

    //Excel dökümanını tablo olarak adını alıyoruz.
    connExcel.Open();
    DataTable dtExcelSchema;
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
    connExcel.Close();

    //Excel i bir tablo olarak okuma işlemi yapıyoruz.
    connExcel.Open();
    cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
    oda.SelectCommand = cmdExcel;
    oda.Fill(dt);
    connExcel.Close();

    //Gelen Excel dökümanının adını başlık olarak yazıyoruz.
    GridView1.Caption = Path.GetFileName(FilePath);
    //Gelen Excel dökümanını gridview e aktarıyoruz.
    GridView1.DataSource = dt;
    GridView1.DataBind();
}

Son olarak da upload işlemi için butona tıklama durumunda yapılması gerekenleri ekliyoruz.

protected void btnUpload_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        //Döküman bilgileriniz alıyoruz.
        string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
        string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
        string FolderPath = ConfigurationManager.AppSettings["FolderPath"];
        string FilePath = Server.MapPath(FolderPath + FileName);

        //Dosyamızı config de belirttiğimiz yolumuza kaydediyoruz.
        FileUpload1.SaveAs(FilePath);

        //Metodumuzu kullanarak Exceli Gridview içersine aktarıyoruz.
        ExceliGridVieweAktar(FilePath, Extension);
    }
}

Takıldığınız yerde soru sorabilirsiniz. Sorularınıza hemen yanıt verilecektir.
Kolay Gelisn.

Projeyi buradan indirebilirsiniz.

İlgili Konular

Yorum Yap

Boş Geçilmez
Boş Geçilmez
Boş Geçilmez

9 Yorum

  1. 17.03.2014 13:43:42

    Siz denedinizmi bu kodları. Hata veriyor asp.net te

    • 17.03.2014 14:04:25

      Tam olarak nasıl bi hata veriyor bana ulaştırabilirmisiniz. [email protected]

    • 17.03.2014 14:09:07

      Bu arada örnek projeyi ekledim. Makalenin sonundaki link den indirebilirsiniz.

  2. 17.03.2014 14:27:07

    Additional information: 'Microsoft.ACE.OLEDB.12.0' sağlayıcısı yerel makine kayıtlı değil. Şeklinde hata veriyor ama benim projem anycpu şeklinde 86 olarak derlemiyorum ben. oracle dataaccess componentini kullandığım için anycpu olarak derlemem gerekiyor

    • 17.03.2014 14:30:14

      Belirttiğiniz "anycpu" konusu hakkında bilgim yok. Makalenin sonundaki linkten projenin çalışır halini indirebilirsiniz.

  3. 17.03.2014 14:59:22

    Yok başka bir yol buldum öyle yapacam zaten. Excel dosyasını veritabanına aktararak halledecem işimi. Kolay gelsin

    • 17.03.2014 15:01:33

      Bu yöntemi çalıştırdıktan sonra bana yollayabilirseniz buradan yayınlarım. İsteyen o yöntemlede işini halledebilir.

  4. 26.05.2014 22:50:37

    Excell dosyasını MSSQL veri tablosuna nasıl aktarabiliriz?

    • 26.05.2014 22:58:45

      Bunun çalışması vardı bende düzenlemesini yapıp burada yayınlarım.