• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
无忧岛主
实践是检验真理的唯一标准
博客园    首页    新随笔       管理    订阅  订阅
做excel导出

前几天要做excel导出。本着有现成的用就用现成的的原则,按照我一贯的做法,先百度。找到一个,封装的还不错,贴出来分享一下。原作者不知道是谁了。如有侵权,请联系删除。

protected void Outputexecl(object sender, EventArgs e)
    {
        string fileName = "物流报表" + "-" + Center.SelectedItem + "-" + DateTime.Now.ToLongDateString() + ".xls";//设置导出文件的名称
        HttpContext curContext = System.Web.HttpContext.Current;
        curContext.Response.ContentType = "application/vnd.ms-excel.numberformat:@";
        curContext.Response.ContentEncoding = System.Text.Encoding.Default;
        curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8).ToString());
        curContext.Response.Charset = "";
        curContext.Response.Write(AddExcelHead());//显示excel的网格线
        curContext.Response.Write(ExportTable(getData()));//导出
        curContext.Response.Write(AddExcelbottom());//显示excel的网格线
        curContext.Response.Flush();
        curContext.Response.End();

    }

    #region 公共程序(导出excel)
    public static string ExportTable(DataTable tb)
    {
        string data = "";
        data += "<table cellspacing="0" cellpadding="5" rules="all" border="0">";
        //写出列名
        data += "<tr style="font-weight: bold; white-space: nowrap;">";
        foreach (DataColumn column in tb.Columns)
        {
            data += "<td>" + column.ColumnName + "</td>";
        }
        data += "</tr>";

        //写出数据
        foreach (DataRow row in tb.Rows)
        {
            data += "<tr>";
            foreach (DataColumn column in tb.Columns)
            {
                data += "<td>" + row[column].ToString() + "</td>";
            }
            data += "</tr>";
        }
        data += "</table>";

        return data;
    }


    public static string AddExcelHead()
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<html xmlns:x="urn:schemas-microsoft-com:office:excel">");
        sb.Append(" <head>");
        sb.Append(" <!--[if gte mso 9]><xml>");
        sb.Append("<x:ExcelWorkbook>");
        sb.Append("<x:ExcelWorksheets>");
        sb.Append("<x:ExcelWorksheet>");
        sb.Append("<x:Name></x:Name>");
        sb.Append("<x:WorksheetOptions>");
        sb.Append("<x:Print>");
        sb.Append("<x:ValidPrinterInfo />");
        sb.Append(" </x:Print>");
        sb.Append("</x:WorksheetOptions>");
        sb.Append("</x:ExcelWorksheet>");
        sb.Append("</x:ExcelWorksheets>");
        sb.Append("</x:ExcelWorkbook>");
        sb.Append("</xml>");
        sb.Append("<![endif]-->");
        sb.Append(" </head>");
        sb.Append("<body>");
        return sb.ToString();

    }
    public static string AddExcelbottom()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("</body>");
        sb.Append("</html>");
        return sb.ToString();
    }
    #endregion

 

如果本文引用了你的文章而未注明,请及时联系我。
posted on 2012-07-01 09:12  无忧岛主  阅读(82)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3