DataTable'dan Excel'e Aktarım.
C# Excel'e aktarım aşağıdaki şekilde kullanılabilir. Türkçe karakterler sorunsuz olarak aktarılmaktadır.
DataTable dt = //veri kaynağı
if (dt.Rows.Count > 0)
{
DataView dv = new DataView(dt);
this.EnableViewState = false;
Response.Clear();
Response.Charset = "utf-8";
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "inline;filename=talep_rapor.xls");
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble());
StringBuilder sbIcerik = new StringBuilder();
sbIcerik.Append("<table>" +
"<tr>" +
"<td>Talep No</td>" +
"<td>Açılış Tarihi</td>" +
"<td>Kullanıcı</td>" +
"<td>Başlık</td>" +
"<td>Toplam Süre / dk.</td>" +
"<td>Toplam Ücret / TL</td>" +
"</tr>"
);
foreach (DataRowView icerikSatir in dv)
{
sbIcerik.Append("<tr>");
sbIcerik.Append("<td>" + icerikSatir["TalepId"].ToString() + "</td>");
sbIcerik.Append("<td>" + icerikSatir["AcilisZamani"].ToString() + "</td>");
sbIcerik.Append("<td>" + icerikSatir["KullaniciAd"].ToString() + "</td>");
sbIcerik.Append("<td>" + icerikSatir["Baslik"].ToString() + "</td>");
sbIcerik.Append("<td>" + icerikSatir["ToplamSure"].ToString() + "</td>");
sbIcerik.Append("<td>" + icerikSatir["ToplamUcret"].ToString() + "</td>");
sbIcerik.Append("</tr>");
}
sbIcerik.Append("</table>");
Response.Write(sbIcerik);
Response.End();
Response.Flush();
}
dt.Dispose();