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


本篇文章介绍一个简单的从后台拼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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值