本文的目的是总结一些在做Excel导出功能时需要注意的样式细节。使用环境是Asp.Net,数据集的形式是Html Table,Excel还是识别一些CSS代码的,所以我们就来总结一下。

  1.记得为Table添加样式style="border-collapse:collapse;",这样使得表格边框自动合并,是边框不至于过粗。

  2.如果为表格加细边框,不要使用style="border:solid 1px Black;",请使用style="border:solid .5pt Black;"。(使用前者的话,在Excel的边框显示效果不佳)

  3.换行的样式为<br style="mso-data-placement:same-cell;" />。(没有为<br />标记使用以上样式的话,在Excel将表现为另起一行)

  4.表格格式为文本的样式为style="mso-number-format: '\@';"

  5.在HTML中可以使用复合样式class='a b',但是Excel只是别单个样式,即class='a'或者class='b',如果使用复合样式则显示时不会载入任何样式。

  6.Excel页面设置,在文档没有出现自动换行的前提下,这个打印样式每页的行数是固定的,如A4纵向:44行,A4横向30行,A3纵向71行,A3横向47行。

  7.通过Response.Write方式导出到Excel,对文档页面进行设置,需要手动添加@page样式,设置PaperSizeIndex属性。直接贴代码好了:

            switch (Drp_PrintStyle.SelectedValue.Trim())
            {
                case "A3纵向":
                    pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;} --></style>";
                    PaperSizeIndex = "8";
                    break;
                case "A3横向":
                    pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-page-orientation:landscape;} --></style>";
                    PaperSizeIndex = "8";
                    break;
                case "A4纵向":
                    pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;} --></style>";
                    PaperSizeIndex = "9";
                    break;
                case "A4横向":
                    pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-page-orientation:landscape;} --></style>";
                    PaperSizeIndex = "9";
                    break;
                default:
                    break;
            }
            Response.Clear();
            Response.Write("<html xmlns:x='urn:schemas-microsoft-com:office:excel'>");
            Response.Write("<head>");
            Response.Write(pageStyle);
            Response.Write("<!--[if gte mso ]><xml>");
            Response.Write("<x:ExcelWorkbook>");
            Response.Write("<x:ExcelWorksheets>");
            Response.Write("<x:ExcelWorksheet>");
            Response.Write("<x:Name>" + "Example" + "</x:Name>");
            Response.Write("<x:WorksheetOptions>");
            Response.Write("<x:Print>");
            Response.Write("<x:PaperSizeIndex>" + PaperSizeIndex + "</x:PaperSizeIndex>");
            Response.Write("<x:ValidPrinterInfo/>");
            Response.Write("</x:Print>");
            Response.Write("</x:WorksheetOptions>");
            Response.Write("</x:ExcelWorksheet>");
            Response.Write("</x:ExcelWorksheets>");
            Response.Write("</x:ExcelWorkbook>");
            Response.Write("</xml>");
            Response.Write("<![endif]--> ");
            Response.Write("</head>");
Response.Write方式导出

相关文章:

  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
猜你喜欢
  • 2021-06-17
  • 2021-10-13
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-10-22
  • 2021-11-16
相关资源
相似解决方案