GridView导出Excel

来源:互联网 发布:打开php页面 下载文件 编辑:程序博客网 时间:2024/05/16 19:38
 public static void CreateExcel(DataSet ds, string FileName) //ds数据集,FileName要导出的文件名称
    {
        //resp = Page.Response;
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
        HttpContext.Current.Response.ContentType = "application/ms-excel";
        string colHeaders = "", ls_item = "";
        int i = 0;


        //定义表对象与行对像,同时用DataSet对其值进行初始化
        System.Data.DataTable dt = ds.Tables[0];
        DataRow[] myRow = dt.Select("");


        //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
        for (i = 0; i < dt.Columns.Count - 1; i++)
            colHeaders += dt.Columns[i].Caption.ToString() + "\t";
        colHeaders += dt.Columns[i].Caption.ToString() + "\n";
        //向HTTP输出流中写入取得的数据信息
        HttpContext.Current.Response.Write(colHeaders);
        //逐行处理数据  
        foreach (DataRow row in myRow)
        {
            //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n
            for (i = 0; i < dt.Columns.Count - 1; i++)
                ls_item += row[i].ToString() + "\t";
            ls_item += row[i].ToString() + "\n";
            //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据    
            HttpContext.Current.Response.Write(ls_item);
            ls_item = "";
        }


        //写缓冲区中的数据到HTTP头文件中
        HttpContext.Current.Response.End();
    }
原创粉丝点击