C# Tutorials and offshore development in India
    Tutorials   Resources   Forum   Reviews   Communities   Interview   Jobs   Projects   Training   Your Ad Here    
Silverlight Games | Mentor | Code Converter | Articles | Code Factory | Computer Jokes | Members | Peer Appraisal | IT Companies | Bookmarks | Polls | Revenue Sharing | Lobby | Gift Shop |


Prizes & Awards
My Profile



Active Members
TodayLast 7 Days more...






Export Grid to Excel


Posted Date:     Total Responses: 0    Posted By: Miss Meetu Choudhary   Member Level: Diamond   Points/Cash: 155   



Export Grid to Excel


In this article we are going to read and understand how in a web application we can export a grid data in the excel file.



Let's start with creating an application in VS2008 (You can even go for VS2005 or VS2010)



Following the steps to we are going to follow.




  1. Create a new project in VS2008 as name it as "ExporttoExcel" in the C# category.

  2. Place a gridview on the default.aspx page and rename it to grdtoexport.

  3. And place a button which will export the grid to excel.

  4. Now lets create a datatable which will bind the grid.



The Code will look like:


protected void Page_Load(object sender, EventArgs e)


{


//creating a table for the grid use namespace System.Data;


DataTable dt = new DataTable ();


//adding columns to the datatale


try


{


dt.Columns.Add("Srno");


dt.Columns.Add("Name");


}


catch { }


//adding values to the datatable


for (int i = 1; i <= 10; i++)


{


DataRow dr = dt.NewRow();


dr[0] = i;


dr[1] = "Meetu Choudhary " + i.ToString();


dt.Rows.Add(dr);


}


//binding databale to the grid


grdtoexport.DataSource = dt;


grdtoexport.DataBind();



}



Writing a ExportToExcel class



using System;


using System.Collections.Generic;


using System.Linq;


using System.Web;


using System.Data;


using System.Configuration;


using System.Web.Security;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;


using System.Text;


using System.IO;




namespace ExportToExcel


{



/// <summary>


/// Summary description for ExportToExcel


/// </summary>


public class ExportToExcel


{


public ExportToExcel()


{


//


// TODO: Add constructor logic here


//


}


public void ExportGridView(GridView GridView1, String strFileName)


{


PrepareGridViewForExport(GridView1);


//string attachment = "attachment; filename=Contacts.xls";


HttpContext.Current.Response.ClearContent();


HttpContext.Current.Response.Buffer = true;


HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + strFileName);


HttpContext.Current.Response.ContentType = "application/ms-excel";


HttpContext.Current.Response.Charset = "";


//System.Web.UI.Page.EnableViewState = false;


StringWriter sw = new StringWriter();


HtmlTextWriter htw = new HtmlTextWriter(sw);


GridView1.RenderControl(htw);


HttpContext.Current.Response.Write(sw.ToString());


HttpContext.Current.Response.End();


}



private void PrepareGridViewForExport(Control gv)


{


LinkButton lb = new LinkButton();


Literal l = new Literal();



string name = String.Empty;


for (int i = 0; i < gv.Controls.Count; i++)


{


if (gv.Controls[i].GetType() == typeof(LinkButton))


{


l.Text = (gv.Controls[i] as LinkButton).Text;


gv.Controls.Remove(gv.Controls[i]);


gv.Controls.AddAt(i, l);


}


else if (gv.Controls[i].GetType() == typeof(DropDownList))


{


l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;


gv.Controls.Remove(gv.Controls[i]);


gv.Controls.AddAt(i, l);


}



else if (gv.Controls[i].GetType() == typeof(CheckBox))


{


l.Text = (gv.Controls[i] as CheckBox).Checked ? "True" : "False";


gv.Controls.Remove(gv.Controls[i]);


gv.Controls.AddAt(i, l);


}



if (gv.Controls[i].HasControls())


{


PrepareGridViewForExport(gv.Controls[i]);


}


}


}



/*Use this commented function in all the pages where the above export function is used


//public override void VerifyRenderingInServerForm(Control control)


//{


//}*/



Calling the Function to export on button click



protected void btnexport_Click(object sender, EventArgs e)


{


ExportToExcel ex = new ExportToExcel();


ex.ExportGridView(grdtoexport, "Client.xls");


}







You can download the code from here



Regards, Meetu Choudhary
Microsoft MVP-ASP/ASP.NET

MsDnM || My Forums || My Blog


Project Feedbacks

Author: Hari NagarajMember Level: BronzeRevenue Score: 3 out of 53 out of 53 out of 5
The Export to Excel can be done by
1. Setting the provider name as the Excel 2007
2. Inherits the class gridview and
read the data from it and using the streamwriter write the data to the Excel file.


Author: vickyMember Level: BronzeRevenue Score: 1 out of 5
its nice
can u tell how to do this in vb instead if c#


Author: Deep Singh ChauhanMember Level: GoldRevenue Score: 1 out of 5
good one...
It can be include in reusable component


Author: Deep Singh ChauhanMember Level: GoldRevenue Score: 1 out of 5
good one...
It can be include in reusable component


Author: Gaurav AroraMember Level: DiamondRevenue Score: 1 out of 5
Good one


Author: Varma SureshMember Level: GoldRevenue Score: 1 out of 5
its good yar


Author: Viji RAJKUMARMember Level: DiamondRevenue Score: 2 out of 52 out of 5
I don't think this is a project.

It should have been included in code snippets section...

Nothing yaar.




Post Feedback
You must Sign In to post a feedback.
Next Project: The Quiz
Previous Project: Exposing a Weather Web Service Report

Return to Project Index

Post New Project


Related Projects



dotNet Slackers

About Us    Contact Us    Privacy Policy    Terms Of Use