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


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

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

Html标签输出到前台并导出到Excel_第1张图片

后台部分代码:

?
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( "\n");
         html.Append( "
\n\n\n");
         /*********************************************/
         html.Append( "
\n");
         for  ( int  i = 0; i <= 5; i++)
         {
             if  (i == 5)
             {
                 html.Append( "
\n");
             }
             else
             {
                 html.Append( "
\n");
             }
         }
         html.Append( "
\n");
         /*********************************************/
         html.Append( "
\n");
XXXX年XX月课程表
+ ( string .IsNullOrEmpty(toCNNum(i)) ? " "  : toCNNum(i)) + " + ( string .IsNullOrEmpty(toCNNum(i)) ? " "  : toCNNum(i)) + "

 

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

      这里我们可以看到样式固定的写到标签的内部了,这样做最后其实只需要输出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的样子:

Html标签输出到前台并导出到Excel_第2张图片

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

你可能感兴趣的:(Excel导出)