1

将数据网格视图导出到 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.AllowPaging = false;
    fillgrid();
    gvdetails.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
    gvdetails.AllowPaging = true;
    fillgrid();

  }
   public override void VerifyRenderingInServerForm(Control control)
  {

  }
4

1 回答 1

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-11T10:43:18.777 回答