0

将数据网格视图保存到 asp dot net 中的 excel。当我在网格视图中使用填充时,数据被保存而不是完整数据未显示在 Excel 工作表中如何在网格视图中使用填充时在 Excel 工作表中显示网格视图的完整数据

    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)
  {
  }
4

2 回答 2

2

您可以导出到 excel 并应用样式和格式,请参阅下面的示例代码

 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();
    }
于 2013-04-11T05:22:25.127 回答
1

通过以下代码:

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(); 
    }
   }
  }
 }
}

注意:以上代码属于链接。

您可以通过该链接关注讨论并获取更多详细信息。

希望它有帮助。

于 2013-04-11T04:45:39.377 回答