web 方法代码整理

一、导出表格数据到excel.

 public static void ExportExcel(System.Data.DataTable dt, string sequenceHeader)
    {
        System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
        stringBuilder.Append("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=gb2312\"/>");
        stringBuilder.Append("<table border=1 style='font-size:12px'>");
        stringBuilder.Append("<tr>");
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            string columnName = dt.Columns[i].ColumnName;
            if (!(columnName == "InstanceId"))
            {
                stringBuilder.AppendFormat("<th>{0}</th>", columnName);
            }
        }
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            stringBuilder.Append("<tr>");
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                string arg = string.Empty;
                arg = dt.Rows[i][j].ToString();
                stringBuilder.AppendFormat("<td>{0}</td>", arg);
                
            }
            stringBuilder.Append("</tr>");
        }
        stringBuilder.Append("</tr>");
        stringBuilder.Append("</table>");
        stringBuilder.Append("</body></html>");
        byte[] array = new byte[stringBuilder.Length];
        array = System.Text.Encoding.GetEncoding(936).GetBytes(stringBuilder.ToString());
        string text3 = System.Guid.NewGuid().ToString();
        string str = text3;
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AddHeader("Content-Length", array.Length.ToString());
        HttpContext.Current.Response.ContentType = "application/octet-stream";
        HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(str) + ".xls");
        HttpContext.Current.Response.OutputStream.Write(array, 0, array.Length);
        HttpContext.Current.Response.End();
    }
ExportExcel

 

posted @ 2018-09-12 08:31  古道子  阅读(371)  评论(0编辑  收藏  举报