7 Temmuz 2010 Çarşamba

Div icerisinde yer alan verileri Excel e Aktarma

Merhaba,

Yazimin birinde bir arkadas div icerisdeki verileri excel'e export etmenin mumkun olup olmadigini sordu. Ben comment olarak arkadasa orada cevap verdim. Fakat search edince bulunabilmesi icin yeni bir baslik olusturayim dedim :) Simdi lafi fazla uzatmadan bu islemi nasil yapacagimiza gecelim.

Oncelikle dikkat edilmesi gereken yer div'e runat="server" ozelligini eklenmesi gerekmekte. Ayrica Fonksiyonun calisabilmesi icin asagidaki referanslari da eklenmesi gerekmekte.

Eklenecek olan Referanslar:
----------------------------
using Microsoft.Office.Core;
using System.IO;
using System.Diagnostics;
using System.Text;


Ayrica aşağıdaki kodun çalışabilmesi için aşağıdaki alanın htm tarafında en üstteki bölüme eklemek gerekiyor. Eklenecek olan alan kırmızı renkte olan alandır. Başındakli<%@ Page Language="C#" ifadesini ise ekelecek yeri karıştırmamak adına verdim.

<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true"

Fonksiyon:
-----------------
public void ExportDivToExcel(string filename, HtmlControl DivName)
{
string attachment = "attachment; filename='"+filename+"'";
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "application/ms-excel";

StringWriter sw = new StringWriter ();
HtmlTextWriter htw = new HtmlTextWriter (sw);
DivName.RenderControl(htw);

HttpContext.Current.Response.Write(HttpUtility.HtmlDecode(sw.ToString()));
HttpContext.Current.Response.End();
}


Asagidaki kısmı fonksiyonu cagiracagimiz button kontrolunden sonra eklememiz gerekmekte.

public override void VerifyRenderingInServerForm(Control control) //Bu kısım işlev geçerliliği için gerekli
{
}


===========
Not:
===========

Kod denendi ve çalışır durumda. Eğer sizde çalışmaması durumda;
  1. Solution Exp. da projenize sağ clikleyin.
  2. Açılan menüden Add Referance yi seçin. Sizi bir pencere karşılayacak..
  3. Açılan olan pencereden Com tabını tıkayın.
  4. Buradan Microsoft.Office.Interop.Excel ve Office ve System.Core u ekleyin.
  5. Bu eklemeleri yaptıktan sonra aşağıdakileri projenize import edin...

using Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
using System.IO;

29 Nisan 2010 Perşembe

C# Asp.net de Databaseden dolan Dropdownlist'in secilen degerini Seciniz olarak ayarlama

Merhaba arkadaslar,

Bu yazimi C# a yeni baslayan bir arkadasimin sorusu uzerine yazmaya karar verdim. Soru su sekilde :

Databaseden dolan bir dropdownlistin ilk degerini nasıl olurda seciniz olarak set edebiliriz.?


Bu islem esasinda oldukca basit. Yapmamiz gereken tek sey Dropdownlist bind edildikten sonraki satira asagidaki kod satirini eklemek.

drp_datalist_All.Items.Insert(0, new ListItem("--SECINIZ--", "--SECINIZ--"));

Buradaki ilk parametre Ekranda gorunecek olan kisim iken ikincisi ise arkadaki value degeridir.

Faydali olmasi dilegi ile.




18 Ocak 2010 Pazartesi

Gridview'de Türkçe Karakter problemi

Merhaba arkadaşlar,

Uzun zamandır buraya yazı yazamıyorum. Bugunkü yazıyı yazmamda bir arkadaşımın sorusu vesile oldu. Ben de birbaşkası daha aynı sorunu yaşıyor olabilir düşüncesi ile konuyu burada paylaşmak istedim.

Geçenlerde bir arkadaşım gridview de turkçe karakterleri çekerken karakterlerin bazılarında bozulmalar olduğunu ve bişey yapılıp yapılamayacağını sordu.

Sorun tam olarak şöyle: Gridview in herhangi bir cell'indeki bir veriyi bir textbox'a ya da bir label'a yazdırmak isterken Türkçe karakterler bozuluyor.

Yukardaki gibi bir problemle karşılaştıgınızda yapılacak birkaç yontem var. Ben bunlardan en kolay olanı gostermek istiyorum.

Senaryomuz şu şekilde. Diyelimki Gridview imizin 3.row unun 5.cell inde bizim ihtiyacımız olan bir data var. Bu datayı bir tane textbox'a yazdırmamız gerekiyor. Datayı çekerken karakter kodlamasından muaf olmasını sağlamamız gerekiyor. Nasıl yapacağımızı görelim şimdi.

 HttpUtility.HtmlDecode(GridView2.Rows[3].Cells[5].Text.ToString()); 



Bu yontem sadece gridview için değil, aynı sorunu yaşadığınız diğer objelerden veri aktarımında da kullanılabilir.

Umarım bu kısa bilgi faydali olur.