zoukankan      html  css  js  c++  java
  • C#导出EXCEL没有网格线的解决方法

    今天在做项目时,通过流导出数据到Excel却不显示网格线,真是郁闷。上网查了好久才得一良方(注意<XML>标签中的代码):
    DataTable thisTable = DBHelper.GetDataTable("select * from table");
    string sheetName = "sheetName";
    string fileName = "fileName";

    if (thisTable != null)
    {
        StringWriter sw 
    = new StringWriter();
        sw.WriteLine(
    "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
        sw.WriteLine(
    "<head>");
        sw.WriteLine(
    "<!--[if gte mso 9]>");
        sw.WriteLine(
    "<xml>");
        sw.WriteLine(
    " <x:ExcelWorkbook>");
        sw.WriteLine(
    "  <x:ExcelWorksheets>");
        sw.WriteLine(
    "   <x:ExcelWorksheet>");
        sw.WriteLine(
    "    <x:Name>" + sheetName + "</x:Name>");
        sw.WriteLine(
    "    <x:WorksheetOptions>");
        sw.WriteLine(
    "      <x:Print>");
        sw.WriteLine(
    "       <x:ValidPrinterInfo />");
        sw.WriteLine(
    "      </x:Print>");
        sw.WriteLine(
    "    </x:WorksheetOptions>");
        sw.WriteLine(
    "   </x:ExcelWorksheet>");
        sw.WriteLine(
    "  </x:ExcelWorksheets>");
        sw.WriteLine(
    "</x:ExcelWorkbook>");
        sw.WriteLine(
    "</xml>");
        sw.WriteLine(
    "<![endif]-->");
        sw.WriteLine(
    "</head>");
        sw.WriteLine(
    "<body>");
        sw.WriteLine(
    "<table>");
        sw.WriteLine(
    " <tr>");
        sw.WriteLine(
    "  <td><strong>列名0</strong></td>");
        sw.WriteLine(
    "  <td>列名1</td>");
        sw.WriteLine(
    "  <td>列名2</td>");
        sw.WriteLine(
    "  <td>列名3</td>");
        sw.WriteLine(
    "  <td>列名4</td>");
        sw.WriteLine(
    "  <td>列名5</td>");
        sw.WriteLine(
    " </tr>");
        
    foreach (DataRow dr in thisTable.Rows)
        {
            sw.WriteLine(
    " <tr>");
            sw.WriteLine(
    "  <td>" + dr["C0"+ "</td>");
            sw.WriteLine(
    "  <td>" + dr["C1"+ "</td>");
            sw.WriteLine(
    "  <td>" + dr["C2"+ "</td>");
            sw.WriteLine(
    "  <td>" + dr["C3"+ "</td>");
            sw.WriteLine(
    "  <td>" + dr["C4"+ "</td>");
            sw.WriteLine(
    "  <td>" + dr["C5"+ "</td>");
            sw.WriteLine(
    " </tr>");
        }
        sw.WriteLine(
    "</table>");
        sw.WriteLine(
    "</body>");
        sw.WriteLine(
    "</html>");
        sw.Close();
        Response.Clear();
        Response.Buffer 
    = true;
        Response.Charset 
    = "UTF-8";
        
    this.EnableViewState = false;
        Response.AddHeader(
    "Content-Disposition""attachment; filename=" + fileName +".xls");
        Response.ContentType 
    = "application/ms-excel";
        Response.ContentEncoding 
    = System.Text.Encoding.GetEncoding("GB2312");
        Response.Write(sw);
        Response.End();
    }
  • 相关阅读:
    【pycharm配置】社区版PyCharm突然打不开,点击图标没有反应,在cmd下输入pycharm可以打开的解决方案
    【pycharm配置】f-string格式化输出在pycharm中标红报错
    JDK、Jmeter安装与配置
    [Python配置]执行pip install出现Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。的解决方案
    Linux虚拟机SSH服务、防火墙开启关闭
    提升效率的28种测试工具
    软件测试人员需要的8方面能力
    联系我
    vim打开交换文件(swp)时Quit和Abort的区别
    机器学习能革了数据库索引的命吗?
  • 原文地址:https://www.cnblogs.com/linyechengwei/p/1597835.html
Copyright © 2011-2022 走看看