导出excel

主要就是把下面表格导出

需要一个aspx页 做request处理

设置一下response头 write一个table出去就ok了

    public void ExportExcel(ArrayList columns, ArrayList data)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        //Response.Charset = "UTF-8";
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + "grid" + ".xls");
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
        Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
        EnableViewState = false;
        Response.Write(ExportTable(data, columns));
        Response.End();
    }

    public static string ExportTable(ArrayList data, ArrayList columns)
    {
        StringBuilder sb = new StringBuilder();
        //data = ds.DataSetName + "\n";
        int count = 0;

        //data += tb.TableName + "\n";
        sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
        sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
        //写出列名
        sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
        foreach (Hashtable column in columns)
        {
            sb.AppendLine("<td>" + column["header"] + "</td>");
        }
        sb.AppendLine("</tr>");

        //写出数据
        foreach (Hashtable row in data)
        {
            sb.Append("<tr>");
            foreach (Hashtable column in columns)
            {
                if (column["field"] == null) continue;
                Object value = row[column["field"]];
                sb.AppendLine("<td>" + value + "</td>");
            }
            sb.AppendLine("</tr>");
            count++;
        }
        sb.AppendLine("</table>");

        return sb.ToString();
    }

 

posted on 2017-05-22 17:14  xinshenghu  阅读(121)  评论(0编辑  收藏  举报