zoukankan      html  css  js  c++  java
  • 无需安装微软组件的 excel导出方式

    /// <summary>
    /// 导出excel
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void LinkButton1_Click(object sender, EventArgs e)
    {

    string content = getExcelContent(VAS.BLL.Vas_Msg_ContactsManager.Vas_DuanXin_Buyer_Dcxuexirizhi_r5UserInfo());
    string css = ".firstTR td{color:blue;100px;}.secondTR td{color:blue;100px;}";
    string filename = "Test.xls";

    CommonTool.ExportToExcel(filename, content, css);
    }


    //内容很好理解,只需当成Table来拼字符串即可
    private string getExcelContent(DataTable dt)
    {
    StringBuilder sb = new StringBuilder();

    sb.Append("<table>");
    sb.Append("<thead><tr>");
    for (int m = 0; m < dt.Columns.Count; m++)
    {
    sb.Append("<th>" + dt.Columns[m] + "</th>");
    }
    sb.Append("</tr></thead>");
    sb.Append("<tbody>");

    for (int i = 0; i < dt.Rows.Count; i++)
    {
    sb.Append("<tr>");

    for (int j = 0; j < dt.Columns.Count; j++)
    {
    sb.Append("<td>" + dt.Rows[i][dt.Columns[j]] + "</td>");
    }
    sb.Append("</tr>");
    }

    sb.Append("</tbody></table>");
    return sb.ToString();
    }

    通用类

    /// <summary>
    /// 以流的形式,可以设置很丰富复杂的样式
    /// </summary>
    /// <param name="content">Excel中内容(Table格式)</param>
    /// <param name="filename">文件名</param>
    /// <param name="cssText">样式内容</param>
    public static void ExportToExcel(string filename, string content, string cssText)
    {
    var res = HttpContext.Current.Response;
    content = String.Format("<style type='text/css'>{0}</style>{1}", cssText, content);

    res.Clear();
    res.Buffer = true;
    res.Charset = "UTF-8";
    res.AddHeader("Content-Disposition", "attachment; filename=" + filename);
    res.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
    res.ContentType = "application/ms-excel;charset=UTF-8";
    res.Write(content);
    res.Flush();
    res.End();
    }

    人生匆匆几十年,BeYourself...
  • 相关阅读:
    IT English Collection(16) of Message
    TO DO NOW——送给奋斗着的程序“猿”们
    题目:[NOIP1999]拦截导弹(最长非递增子序列DP) O(n^2)和O(n*log(n))的两种做法
    hdu 1695 GCD
    paip.提升用户体验---c++ qt 取消gcc编译的警告信息.txt
    hive优化要点总结
    HDU 4099 Revenge of Fibonacci (数学+字典数)
    JSP小实例--计算器
    关于产品的一些思考——百度之百度百科
    正则表达式JSP实例
  • 原文地址:https://www.cnblogs.com/huagege/p/3559092.html
Copyright © 2011-2022 走看看