导出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 + "
";
        int count = 0;

        //data += tb.TableName + "
";
        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();
    }
原文地址:https://www.cnblogs.com/frog2008/p/6890390.html