Osman KURT

Kendime Not

ASP.Net de Word Çıktısı Almak

Merhaba Arkadaşlar,

Bugün size şu anda yazmakta olduğum bir projede kullandığım bir olayı anlatacağım. veritabanın da sakladığım bir text verisinin word olarak çıktısını almayı gösterecğim.

ASP.NET'te bu işlemi yapmak oldukça kolay. Lafı uzatmadan ben kodlara geçiyim.

Response.Clear();
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9");
Response.Charset = "ISO-8859-9";
Response.ContentType = "application/msword";

string strFileName = "Word-Ciktisi.doc";
Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);

Response.Write("word dosyanızda çıkıcak alan burası isterseniz veritabanından gelen veriyi yazdırabilirsiniz.");

Response.End();
Response.Flush();


Bu kodu Page_Load ya da Button_Click gibi olaylara yazabilirsiniz.

Kodda da gördüğünüz gibi Response nesnesi oldukça güçlüdür.

  •     .Clear() metodu ile sayfamızın o ana kadar yüklenmiş olan HTML kısmını siliyoruz
  •     Sayfamızın karakter kodlamasını belirtiyoruz. "ISO-8859-9" Türkçe karakter kümesine denk geliyor. Dilerseniz "utf-8" olarak değiştirebilirsiniz. (Arapça, vs. dilleri de desteklesin diye)
  •     İçerik tipini belirtiyoruz.
  •     Dosya adını veriyoruz.
  •     İçeriğimizi yazdırıyoruz. İstediğiniz gibi metni belirtebilirsiniz. (Koyu, italic, table, link, vs.. vs..)
  •     İşlemi sonlandırıp, çıktımızı gönderiyoruz.

Aynı Olayı database kullanarak yapmak içinse;

        Response.Clear();
        Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9");
        Response.Charset = "ISO-8859-9";
        Response.ContentType = "application/html";

        string strFileName = "ihalemerkezi.html";
        Response.AddHeader("Content-Disposition", "attachment; filename=" + strFileName);

        #region Güncelle Bilgileri Dolduruluyor
        SqlCommand sorgu = new SqlCommand("select * from Ihale where IhaleId=" + Request.QueryString["IhaleId"], baglan.baglanti);

        if (ConnectionState.Closed == baglan.baglanti.State)
            baglan.baglanti.Open();

        SqlDataReader dr = sorgu.ExecuteReader();
        while (dr.Read())
        {
            Response.Write(dr["IhaleMetni"].ToString());
        }
        baglan.baglanti.Close();
        #endregion

        Response.End();
        Response.Flush();

Bu işlemde bu kadar basit. yalnız ben class kullandığım için bazı kodlar yabancı gelebilir. Kısacası yapmanız gereken sqlconnection kullanarak veritabanına bağlanmak sqlcommand la tabloya bağlanmak ve son olarak SqlDataReader ile verileri okutarak uygun yere yazdırmak.


Görüşmek Üzere;

Osman KURT

Yazılım geliştirici ve Grafiker

Yorumlar (1) -

  • Cem Tayfur Demirsal

    9.5.2017 22:12:03 | Yanıtla

    mvc ile bir program hazırladım. fatura yazdırmam gerekiyor. ama programın otomatik olarak şeritli yazıcıya göndermesini nasıl sağlarım. Kod örneği verebilirmisiniz. Lütfen.

Loading