Web de yaptığımız sitelerde bazen Excell belgesi yada PDF belgesi oluşturma gereksinimi duyarız. İnternet üzerinden biraz araştırma yaptığınızda bununla ilgili olarak bir çok kod bulabilirsiniz ama bunların bazıları çalışırken bazılarıda projenizde çalışmayacaktır. Şimdi ben sizlere benim sıklıkla kullandığım vede çalışan kodu sizlerle paylaşıyor olacağım. Ayrıca birde bilmelisiniz ki iki türde Excell belgesi oluşturabilirsiniz. Biri gösterdiğiniz bir grid’ den direkt olarak dosyanızı karşı tarafa aktarmayı sağlamak bir diğeri dosyanızı bir alanda yada yerde oluşturup dosyaya erişim yolunu paylaşıp siteniz üzerinden indirilmesini sağlamak. Tüm bunlar dışında bir yol daha var aslında.Oda eğer bir Intranet uygulaması yazıyorsanız yada oluşturuyorsanız gerekli izinlemeleri ayarlayıp dosyanın direkt dökümü isteyen kişinin belgelerim klasörü içine aktarılmasını sağlamak. Bu yöntem özel izinlemeler gerektğinden malesefki Internet ortamında uygulanabilecek bir yöntem değildir. Biz bunlardan en basitini ve çalışanını kullanacağız. Yani dosya ne bizim server’ımızda oluşacak nede kişinin bilgisayarında oluşturacağız. Web sitemiz içine bir grid elemanı ekleyip içini doldurup buradan oluşturulmasını sağlayacağız.
Şimdi projenize bir grid sayfası eklediğinizi düşünüyor, sonrasında da gerekli yöntemler ile bu grid’ di doldurduğunuzu kabul ediyorum. İşte size “Excell” butonuna bastığınız zaman yazmanız gereken kod;
string attachment = "attachment; filename=_PersonelListesi.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write("<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\>");
Response.Write(sw.ToString());
Response.End();
Birde bu kod var buda aynı işlemi yapıyor seçim sizin hangisini kullanmak isterseniz;
string attachment = "attachment; filename=" + fileName;
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grdWProgress.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();