excel to grid Etiketli Yazılar

C# – Excel To DataTable

Excel dosyasında bir çalışma kitabını veya çalışma kitabının herhangi bir hücre aralığını okuyup datatable olarak
döndürmek isterseniz aşağıdaki methodu kullanabilirsiniz.

– Method 2003-2007 dosya formatlarında çalışabilmektedir.
– Çalışma Sayfası parametresi gönderilmeyebilir, bu durumda method, dosyanın ilk çalışma sayfasını okuyacaktır.
– Hücre aralığı belirtilmez ise varsayılan olarak A1:Z65536 değerini alacaktır.

    
    private DataTable ExceltoDataTable(string ExcelDosyaYolu, string CalismaSayfasi = "", string Range = "A1:Z65536")
    {
        try
        {
            string con = "";
            if (ExcelDosyaYolu.Substring(ExcelDosyaYolu.Length - 1, 1).ToUpper() == "X")
            { con = @"Provider=Microsoft.ACE.OLEDB.12.0;"
              + "Data Source=" + ExcelDosyaYolu + ";"
              + "Extended Properties='Excel 8.0;HDR=No'";
            }
            else
            { con = "Provider=Microsoft.Jet.OLEDB.4.0;"
              + "Data Source=" + ExcelDosyaYolu + ";"
              + "Extended Properties='Excel 8.0;HDR=Yes'";
            }
            OleDbConnection xlscon = new OleDbConnection(con);
            xlscon.Open();
            //
            if (CalismaSayfasi == "")             {CalismaSayfasi = xlscon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString();
            }
            else {CalismaSayfasi = CalismaSayfasi + "$";}
            //
            OleDbCommand xlscmd = new OleDbCommand(@"SELECT * FROM [" + CalismaSayfasi +Range+"]", xlscon);
            OleDbDataAdapter xlsda = new OleDbDataAdapter();
            xlsda.SelectCommand = xlscmd;
            DataTable xlsdt = new DataTable();
            xlsda.Fill(xlsdt);
            xlscon.Close();
            xlsda = null;
            return xlsdt;
        }
        catch         {
            return null;
        }
        finally
        { }
    }  

Direk bir gride bağlamak isterseniz;
aspxgridview için,
grid.AutoGenerateColumns = true;
grid.Columns.Clear();
grid.DataSource = ExceltoDataTable(“C:\\Book1.xls”);
grid.DataBind();