利用不同的服务器控件将数据导出到Excel文件

mac2022-06-30  75

<% @ Page Language = " C# "  AutoEventWireup = " true "   CodeFile = " Default.aspx.cs "  Inherits = " _Default "  EnableEventValidation = " false "   %> <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " > < html xmlns = " http://www.w3.org/1999/xhtml "   > < head runat = " server " >      < title > 利用不同的服务器控件将数据导出到Excel文件 </ title > </ head > < body >      < form id = " form1 "  runat = " server " >      < div >          < asp:Button ID = " outExcelBtn "  runat = " server "  Text = " Button "  OnClick = " outExcelBtn_Click "   />      </ div >      </ form > </ body > </ html > 后台代码: using  System; using  System.Data; using  System.Configuration; using  System.Web; 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; public   partial   class  _Default : System.Web.UI.Page  {    protected void Page_Load(object sender, EventArgs e)    {    }    protected void outExcelBtn_Click(object sender, EventArgs e)    {        string filename = "FileFlow.xls";        OutPutExcel(filename);     }    public void OutPutExcel(string filename)    {        DataTable table = new DataTable();        table.Columns.Add("name"typeof(string));        table.Columns.Add("age"typeof(int));        for (int i = 0; i < 10; i++)        {            DataRow row = table.NewRow();            row["name"= "Name_" + i.ToString();            row["age"= 20 + i;            table.Rows.Add(row);        }        DataGrid dg = new DataGrid();        dg.DataSource = table;        dg.DataBind();                //定义文档类型、字符编码         Response.Clear();        Response.Buffer = true;        Response.Charset = "GB2312";        //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开         //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm         Response.AppendHeader("Content-Disposition""attachment;filename=" + filename);        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");        //Response.ContentType指定文件类型 可以为application/ms-excel、application/ms-word、application/ms-txt、application/ms-html 或其他浏览器可直接支持文档         Response.ContentType = "application/ms-excel";        this.EnableViewState = false;        // 定义一个输入流         System.IO.StringWriter oStringWriter = new System.IO.StringWriter();        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);        通过Datagrid导出Excel#region 通过Datagrid导出Excel        //dg.RenderControl(oHtmlTextWriter);        #endregion        通过HTMLTable导出Excel#region 通过HTMLTable导出Excel        /**//*HtmlTable htmlTable = new HtmlTable();        foreach (DataRow row in table.Rows)        {            HtmlTableRow htmlRow = new HtmlTableRow();            HtmlTableCell cellName = new HtmlTableCell();            HtmlTableCell cellAge = new HtmlTableCell();            cellName.InnerText = row["name"].ToString();            cellAge.InnerText = row["age"].ToString();            htmlRow.Cells.Add(cellName);            htmlRow.Cells.Add(cellAge);            htmlTable.Rows.Add(htmlRow);        }        htmlTable.RenderControl(oHtmlTextWriter);*/        #endregion        通过literal导出Excel#region 通过literal导出Excel        Literal literal = new Literal();        StringBuilder sb = new StringBuilder();        sb.AppendLine(@"Name"+"\t"+"Age");        foreach (DataRow row in table.Rows)        {            sb.AppendLine(@""+ row["name"].ToString() + "\t" + row["age"].ToString());        }        literal.Text = sb.ToString();        literal.RenderControl(oHtmlTextWriter);        #endregion        将本页内容导出为Excel#region 将本页内容导出为Excel        //this.RenderControl(oHtmlTextWriter);         //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件         #endregion        Response.Write(oStringWriter.ToString());        Response.End();    }}

转载于:https://www.cnblogs.com/windthunder/archive/2009/09/21/1571450.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)