下面小结下把gridview的数据导出到excel,world,pdf的几种方法

1 导出到word
  Response.AddHeader("content-disposition", "attachment;filename=Export.doc");

        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        Response.ContentType = "application/vnd.word";

        System.IO.StringWriter stringWrite = new System.IO.StringWriter();

        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

        // Create a form to contain the grid

        HtmlForm frm = new HtmlForm();

        gv.Parent.Controls.Add(frm);

        frm.Attributes["runat"] = "server";

        frm.Controls.Add(gv);

        frm.RenderControl(htmlWrite);

        //GridView1.RenderControl(htw);

        Response.Write(stringWrite.ToString());

        Response.End();


2 导出到excel
   string attachment = "attachment; filename=Export.xls";

        Response.ClearContent();

        Response.AddHeader("content-disposition", attachment);

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

        StringWriter sw = new StringWriter();

        HtmlTextWriter htw = new HtmlTextWriter(sw);

        // Create a form to contain the grid

        HtmlForm frm = new HtmlForm();

       gv.Parent.Controls.Add(frm);

        frm.Attributes["runat"] = "server";

        frm.Controls.Add(gv);

        frm.RenderControl(htw);



        //GridView1.RenderControl(htw);

        Response.Write(sw.ToString());

        Response.End();


3 导出到pdf
  这个时候要用到开源的itext了
using iTextSharp.text;

using iTextSharp.text.pdf;

using iTextSharp.text.html;

using iTextSharp.text.html.simpleparser;

Response.ContentType = "application/pdf";



Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");

Response.Cache.SetCacheability(HttpCacheability.NoCache);

StringWriter sw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(sw);

HtmlForm frm = new HtmlForm();

gv.Parent.Controls.Add(frm);

frm.Attributes["runat"] = "server";

frm.Controls.Add(gv);

frm.RenderControl(hw);

StringReader sr = new StringReader(sw.ToString());

Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);

HTMLWorker htmlparser = new HTMLWorker(pdfDoc);

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

pdfDoc.Open();

htmlparser.Parse(sr);

pdfDoc.Close();

Response.Write(pdfDoc);

Response.End();