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
9
Yorum