本文的目的是总结一些在做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属性。直接贴代码好了:

 
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;
 

  8.通过Response.Write方式导出到Excel时,如果目标是一个HTML控件(非服务器端),需要先添加runat属性,然后以下方法获取控件的InnerHTML代码。

System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
YourHtmlControl.RenderControl(htw);

   记得加上

public override void VerifyRenderingInServerForm(Control control){}

  9.通过Response.Write方式导出到Excel时出现乱码的一种情况是页面的编码格式和导出Excel方法中的页面编码格式不一致。

导出方法:

page.Response.Charset = "utf-8";
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
page.Response.ContentType = "application/ms-execl";

页面导出:

string excelText = "<meta http-equiv=\"content-type\" content=\"application/ms-excel;charset=UTF-8\" />" + LblResult.Text;

注意:两段代码中的编码格式要相同,即要么都是‘UTF-8’,要么都是‘GB2312’。

  补充:样式细节,可以在导出后的Excel文件中,选择左上角文件->网页预览->查看源文件,观察头文件可以学习到更多。

最新文章

  1. 手机通过数据线连接电脑后,找不到设备--Android Studio
  2. SSH框架整合(XML)
  3. Windows 服务为宿主的WCF服务,详细图解。
  4. Sql Server 中一个非常强大的日期格式化函数
  5. Android停止运行问题1_layout布局xml问题
  6. 对Golang的一些看法
  7. centos6配置vnc登录远程物理机及vb复制vdi启动虚拟机网络问题
  8. Web Project配置Hirbernate
  9. Dump Checking
  10. glog 使用
  11. Java集合之Collection
  12. Evaluation of Forwarding Efficiency in NFV-Nodes Toward Predictable Service Chain Performance
  13. HTML5 API分享
  14. 使用session统计在线人数
  15. 微信公众号接入之排序问题小记 Arrays.sort()
  16. Latex中cls和sty文件有何区别?
  17. Python学习之旅(二十)
  18. swift中闭包的学习。
  19. JCF
  20. L2-019. 悄悄关注

热门文章

  1. 自定义parallelStream的thread pool
  2. Linux网络服务第四章部署yum仓库
  3. C# 基础知识系列- 14 IO篇 文件的操作
  4. Shiro(二):Spring-boot如何集成Shiro(上)
  5. webpack4.x下babel的安装、配置及使用
  6. 震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
  7. spark系列-7、spark调优
  8. 数据预处理 —— padding数据
  9. 【Spark】一起了解一下大数据必不可少的Spark吧!
  10. Day_12【集合】扩展案例2_键盘录入一个字符串,对其进行去重,并将去重后的字符串组成新数组