C# ASP.NET'den Excel'e veri aktarmak

user  Ulaş YURTSEVER  |  date  13 Mart 2010 Cumartesi 18:00  |  oku 14477 Okunma  

ASP.NET sayfalarından sunucu üzerinde excel dosyası oluşturularak veri aktarma işleminin yapılabilmesi için Excel COM nesnesine ASPNET ve NETWORK SERVICE kullanıcıları için izin verilmesi gerekiyor. Bu yöntem ile yapılacak excel aktarma işlemi önerilmez. Performans ve sunucunun kararsız çalışmasına sebep olabilir.

Bakınız: http://support.microsoft.com/kb/257757/tr

Peki ASP.NET'de Excel raporu nasıl alacağız diyorsanız başka bir yöntem daha var. Bu yöntemde html formatındaki veriyi excelde göstereceğiz. Fakat yaptığımız bu yöntem excel dosya formatı ile ilgisi bulunmamaktadır.

Excel'de gösterilecek veride satır ve sütunları belirtmek için <TR> ve <TD> taglarını kullanacağız.

Örnek Kod:

private void ExcelDosyasi()
{
    string baglantiMetni = "Data Source=192.168.0.1;Initial Catalog=veritabani_adi;" +
                           "Persist Security Info=True;User ID=kullanici_adi;Password=sifre";
    SqlConnection cnn = new SqlConnection(baglantiMetni);
    string sqlMetni = "SELECT * FROM tablo_adi";
    SqlDataAdapter da = new SqlDataAdapter(sqlMetni, cnn);
    DataTable dt = new DataTable();
    da.Fill(dt);
    DataView raporDataView = new DataView(dt);
   
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.Charset = "UTF-8";
    HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
    HttpContext.Current.Response.AddHeader("Content-Disposition", "inline;filename=dosya_adi.xls");
    StringBuilder icerik = new StringBuilder();

    icerik.Append("<table border='1'>" +
                  "<tr style='text-align:center; font-weight: bold; background-color: black; color: white;'>" +
                  "<td>TC Kimlik No</td>" +
                  "<td>Adı</td>" +
                  "<td>Soyadı</td>" +
                  "<td>E-Posta</td>" +
                  "</tr>"
                  );

    foreach (DataRowView satir in raporDataView)
    {
        icerik.Append("<tr>");
        icerik.Append("<td>" + satir["tc_no"].ToString() + "</td>");
        icerik.Append("<td>" + satir["adi"].ToString() + "</td>");
        icerik.Append("<td>" + satir["soyadi"].ToString() + "</td>");
        icerik.Append("<td>" + satir["e_posta"].ToString() + "</td>");
        icerik.Append("</tr>");

    }

    icerik.Append("</table>");

    HttpContext.Current.Response.Write(icerik);
    HttpContext.Current.Response.End();
    HttpContext.Current.Response.Flush();
}

Etiket: kodlama, c#, asp.net, html, excel, veri, kod, veri aktarmak, rapor

Yorum yapın

isim (gerekli)
e-posta (gerekli - gösterilmeyecek)