zoukankan      html  css  js  c++  java
  • Asp.net(c#)导出有表格线的Excel

    表格用文件流的方式输出为excel。实例代码如下:


            public static void DaochuTalbe(string TableInnerHtml, string filename)
            {
                StringWriter sw 
    = new
     StringWriter();
                sw.WriteLine(TableInnerHtml);
                sw.Close();
                System.Web.HttpContext.Current.Response.AddHeader(
    "Content-Disposition""attachment;filename=" + filename + ".xls"
    );
                System.Web.HttpContext.Current.Response.ContentType 
    = "application/ms-excel"
    ;
                System.Web.HttpContext.Current.Response.ContentEncoding 
    =
     System.Text.Encoding.UTF7;
                System.Web.HttpContext.Current.Response.Write(sw);
                System.Web.HttpContext.Current.Response.End();
            }
    这种方法的从本质上说并非标准的excel格式,不过把html格式的文件另存为excel的格式,然后用excel打开罢了。
    打开后会发现导出的excel无表格线,白白的一片,太难看了。
    通过分析excel的格式代码,我尝试在程序里增加带表格线的excel头部代码,结果顺利导出有表格线的excel.
    增加的代码如下:

          /// <summary>
            
    /// Excel头部
            
    /// </summary>

            
    /// <returns></returns>
            public static string AddExcelHead()
            {
                StringBuilder sb 
    = new
     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();

            }

            /// <summary>
            
    /// Excel尾部
            
    /// </summary>

            
    /// <returns></returns>
            public static string AddExcelbottom()
            {
                StringBuilder sb 
    = new
     StringBuilder();
                sb.Append(
    "</body>"
    );
                sb.Append(
    "</html>"
    );
                
    return
     sb.ToString();
            }
  • 相关阅读:
    技术人员的找工之路(1
    技术人员的找工之路(3)
    Endian的由来
    android平台开发笔记1Spinner不能在sub activity中使用
    谈谈Groupon的成功
    线程安全的同步读写类的模板设计
    项目管理文件package.json
    10个每个开发人员都应该知道的强大JavaScript 解构技术
    绿色下载站上线了(MVC +Telerik开源控件)
    我开发的新浪微博应用“微词典”通过审核,欢迎朋友们试用,多多建议!
  • 原文地址:https://www.cnblogs.com/ymyglhb/p/1460124.html
Copyright © 2011-2022 走看看