1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > asp.net 表格导出到excel样式变化问题

asp.net 表格导出到excel样式变化问题

时间:2019-07-28 22:07:49

相关推荐

asp.net 表格导出到excel样式变化问题

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

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

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

3.换行的样式为<br />。(没有为<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);

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’。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。