Vikash Chauhan
Vikash Chauhan

Reputation: 792

Export DataGridView with padding to excel

save data gird view to excel in asp dot net. data is save when i am using padding in grid view than full data not show in excel sheet how to show full data of grid view in excel sheet when using padding in grid view

    protected void btnexcel_Click1(object sender, EventArgs e)
    {
    Response.Clear();
    Response.Buffer = true;
    Response.AddHeader("content-disposition",
    "attachment;filename=ActualsAndBudgets.xls");
    Response.Charset = "";
    Response.ContentType = "application/ms-excel";
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    gvdetails.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
   }
   public override void VerifyRenderingInServerForm(Control control)
  {
  }

Upvotes: 0

Views: 1656

Answers (2)

Black Cloud
Black Cloud

Reputation: 481

You can export to excel and apply styles and formatting see sample code below

 protected void btnExportExcel_Click(object sender, EventArgs e)
    {
        Response.Clear();

        Response.Buffer = true;
        Response.AddHeader("content-disposition","attachment;filename=GridViewExport.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";

        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        GridView.AllowPaging = false;

        // Re-Bind data to GridView 

        using (MSEntities1 CompObj = new MSEntities1())
        {
           // code for bind grid view 
            GridView.DataBind();
        }

        // Change the Header Row back to white color

        GridViewC.Style.Add(" font-size", "10px");

        GridView.HeaderRow.Style.Add("background-color", "#FFFFFF");


        //Apply style to Individual Cells

        GridView.HeaderRow.Cells[0].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[1].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[2].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[3].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[4].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[5].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[6].Style.Add("background-color", "green");
        GridView.HeaderRow.Cells[7].Style.Add("background-color", "green");


        int k = GridView.Rows.Count;

        for (int i = 1; i < GridView.Rows.Count; i++)
        {

            GridViewRow row = GridView.Rows[i];


            //Change Color back to white

            row.BackColor = System.Drawing.Color.White;


            //Apply text style to each Row

            row.Attributes.Add("class", "textmode");


            //Apply style to Individual Cells of Alternating Row

            if (i % 2 != 0)
            {
                row.Cells[0].Style.Add("background-color", "#C2D69B");
                row.Cells[1].Style.Add("background-color", "#C2D69B");
                row.Cells[2].Style.Add("background-color", "#C2D69B");
                row.Cells[3].Style.Add("background-color", "#C2D69B");
                row.Cells[4].Style.Add("background-color", "#C2D69B");
                row.Cells[5].Style.Add("background-color", "#C2D69B");
                row.Cells[6].Style.Add("background-color", "#C2D69B");
                row.Cells[7].Style.Add("background-color", "#C2D69B");
            }
        }
        GridView.RenderControl(hw);

        // style to format numbers to string.

        string style = @"<style> .textmode { mso-number-format:\@; } </style>";

        Response.Write(style);
        Response.Output.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }

Upvotes: 2

Freelancer
Freelancer

Reputation: 9074

Go through following code:

using System;
using System.Data;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Whatever
{
 /// 

 /// This class provides a method to write a dataset to the HttpResponse as
 /// an excel file. 
 /// 

 public class ExcelExport
 {
  public static void ExportDataSetToExcel(DataSet ds, string filename)
  {
   HttpResponse response = HttpContext.Current.Response;

   // first let's clean up the response.object
   response.Clear();
   response.Charset = "";

   // set the response mime type for excel
   response.ContentType = "application/vnd.ms-excel";
   response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");

   // create a string writer
   using (StringWriter sw = new StringWriter())
   {
    using (HtmlTextWriter htw = new HtmlTextWriter(sw))
    {
     // instantiate a datagrid
     DataGrid dg = new DataGrid();
     dg.DataSource = ds.Tables[0];
     dg.DataBind();
     dg.RenderControl(htw);
     response.Write(sw.ToString());
     response.End(); 
    }
   }
  }
 }
}

NOTE: Above code belongs to this link.

You can follow discussion over that link and get more details.

Hope its helpful.

Upvotes: 1

Related Questions