Html标签输出到前台并导出到Excel

简介: 本篇文章介绍一个简单的从后台拼html标签到前台显示并能导出到Excel的例子。 例如,我们在后台拼接一个课程表,要输出到前台,样子如下: 后台部分代码: ? 1 2 3 4 5 ...

本篇文章介绍一个简单的从后台拼html标签到前台显示并能导出到Excel的例子。

例如,我们在后台拼接一个课程表,要输出到前台,样子如下:

image_thumb2

后台部分代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
StringBuilder html = new  StringBuilder();
         html.Append( "<table cellpadding=\"0\" cellspacing=\"0\" style=\"border:1px solid black;text-align:center;\" width=\"700\">\n" );
         html.Append( "<tr>\n<td style=\"border-bottom: 1px solid black;text-align:center;\" colspan=\"6\">XXXX年XX月课程表</td>\n</tr>\n" );
         /*********************************************/
         html.Append( "<tr>\n" );
         for  ( int  i = 0; i <= 5; i++)
         {
             if  (i == 5)
             {
                 html.Append( "<td style=\"border-bottom: 1px solid black;text-align: center;\">"  + ( string .IsNullOrEmpty(toCNNum(i)) ? "&nbsp;"  : toCNNum(i)) + "</td>\n" );
             }
             else
             {
                 html.Append( "<td style=\"border-bottom: 1px solid black;text-align:center;border-right: 1px solid black;\">"  + ( string .IsNullOrEmpty(toCNNum(i)) ? "&nbsp;"  : toCNNum(i)) + "</td>\n" );
             }
         }
         html.Append( "</tr>\n" );
         /*********************************************/
         html.Append( "<tr>\n" );

 

      说白了就是在后台动态的拼接标签,最后输出到前台做显示。

      这里我们可以看到样式固定的写到标签的内部了,这样做最后其实只需要输出table标签就可以了,但是需要加样式的地方就需要加在标签内部。

      当然我们可以把样式写成一个style提取出来,在标签中加入class=”style”就行了,这样做没有问题,输出到前台也可以正常显示,但是在导出到excel时会遇到问题,导出的excel没有样式,因为我们在后台输出时只是拼接了table标签没有把样式带上,样式可以写在前台的head标签里,或者独立到css文件中,但是在导出的excel中并不带这些样式。所以,在后台拼接标签时,我们需要带上完整的样式增加一些必要的标签,再导出到excel时就没有问题了。

      以上两种方法可以根据实际应用来定。

      下面我们看一下excel导出的关键代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//输出的应用类型
         Response.ContentType = "application/vnd.ms-excel" ;
         //设定编码方式,若输出的excel有乱码,可优先从编码方面解决
         // Response.Charset = "gb2312";
         Response.Charset = "utf-8" ;
         Response.ContentEncoding = System.Text.Encoding.UTF8;
         //关闭ViewState,此属性在Page中
         EnableViewState = false ;
         //filenames是自定义的文件名
         Response.AppendHeader( "Content-Disposition" , "attachment;filename=data.xls" );
         //content是步骤1的html,注意是string类型
         Response.Write(createTable());
        Response.End();

 

注释已经写得很清晰了,导出到excel的样子:

clip_image002_thumb2

本文转载自:http://www.cnblogs.com/Johnny_Z/archive/2012/10/31/2748252.html

相关文章
|
20天前
|
移动开发 搜索推荐 HTML5
如何使用HTML5的语义化标签来提高网站的可访问性?
【4月更文挑战第1天】如何使用HTML5的语义化标签来提高网站的可访问性?
22 1
|
1月前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
|
5天前
|
easyexcel 数据库
公司大佬对excel导入、导出的封装,那叫一个秒啊
封装公司统一使用的组件的主要目标是为了简化开发人员的调用流程,避免各个项目组重复集成和编写不规范的代码。文中提到对阿里EasyExcel进行了二次封装,提供了导入和导出功能,并支持模板的导入和导出。此外,还处理了读取数据与实际保存数据不一致的情况,通过提供自定义转换器来解决。
18 0
|
5天前
|
数据库
开发指南009-从list导出excel文件
从数据库返回一般是对象的列表,平台底层提供了从list转为excel文件的方法
|
5天前
|
前端开发
开发指南007-导出Excel
平台上开发导出Excel比过去的单体架构要复杂些,因为前端和后台不在一个进程空间里。
|
5天前
|
前端开发 JavaScript 开发者
html标签的样式
【4月更文挑战第19天】html标签的样式
10 2
|
9天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
18 1
|
17天前
|
JavaScript
Vue移动 HTML 元素到指定位置 teleport 标签
Vue移动 HTML 元素到指定位置 teleport 标签
|
20天前
|
移动开发 搜索推荐 开发者
HTML5中的语义化标签有哪些?
【4月更文挑战第1天】HTML5中的语义化标签有哪些?
9 0
HTML5中的语义化标签有哪些?
|
23天前
|
存储 移动开发 前端开发
html的常用标签
【4月更文挑战第1天】html的常用标签
22 4