我们在开发网站时,有很大一部分人采用的是MVC模式,而V是代表视图,关于视图开发的语言,都有语法简单,开发迅速的特点,比如说velocity,jstl等等,而通常用这种语言写成的文件我们通常称其为模板。模板,从名字上可以得出,这是一种通用具有参照性的样板,所有的东西都是按照它的比例剪栽而成的。
 
 在采用MVC方式开发html页时,因为html是普通文本表示的,我们就会用如下形式表html
 

代码
 1  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 2  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
 3  <head>
 4   <title>#if($title) $title - #end xxx网</title>
 5   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 6   <meta http-equiv="Content-Language" content="cn"/>
 7   <meta content="all" name="robots"/>
 8   <meta name="author" content="mailto:netcorner@live.com%22/>
 9   <meta name="copyright" content="http://www.xxx.com%22/>
10   <meta name="description" content="$!title"/>
11   <meta name="keywords" content="$!title"/>
12   <link rel="icon" href="$applicationPath/favicon.ico" type="image/x-icon"/>
13   <script src="$applicationPath/script/jquery1.3.2.js" type="text/javascript"></script>
14  </head>
15  <body>
16  #body()
17  </body>
18  </html>

 

 
 
 通过上面的形式,我们程序就可以把以“${var}”形式的替换成我们想要的数据,而且处理起来很方便,页面和逻辑进行区分,但是对于我们的office文件(如excel,word的文件)应该怎么处理呢?因为他们不是文本的,所以通常情况下想要以excel或word文件模板像html一样做模板处理就相当困难了!那么有什么办法处理这种情况呢?
 
 在开发过程中,我们会遇到很多情况是这样的:要导出数据,导出成excel、PDF、word形式的,有的如果想打印,也可以直接导出这几种形式,以方便用户打印。这几种情况在开发中是经常存的,对于开发OA时,这种情况遇到的就更多一些了。
 
 那么有没有把像excel、word文档当成模板处理的呢?
 
 其实有很多方式可以实现这种情况的,我知道的大致有这几种情况。
 
 1.通过操作office类库,在程序中进行操作
  这种情况,得调用office类库,而且还得写不少代码。
 
 2.用openxml代替office的二进制代码
  感觉很复杂,也不知道openxml文件是否支持office早期版本。
 
 3.用office文件另存为xml形式来表示
 
 例:
  我建立doc文件,在文档里面输入“aaaaaaaaaaaaaaaaa”,并别存为“XML文档(*.xml)”,当你直接打开这个xml文件是就是直接打开word文档了,而文档里面就是我输入的数据。用记事本打开刚才保存的xml文件,发现里面就是一个文本格式的。代码如下:
  

代码
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application prog>>

而刚才输入的文字"aaaaaaaaaaaaaaaaa",就在其中。如果你需用用变量,那么就可以用变量替换了。

那么程序应该如何处理该文档呢?

其实处理方式和MVC中处理html一样的,只是把这个office的xml文档当作html模板处理并,在程序端另存为文档时也得处理一下,如下列代码:

 

代码
1             HttpContext.Current.Response.AppendHeader("Content-Disposition""attachment;filename=Word.doc");
2             HttpContext.Current.Response.Charset = "UTF-8";
3             HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
4             HttpContext.Current.Response.ContentType = "text/xml";
5             HttpContext.Current.Response.Write(TemplateProcess.Output(MyContext, "/layout/include/" + this.MethodName));//模板处理的office模板文本代码
6             HttpContext.Current.Response.End();

 

通过上面形式,就可以把office文件当作文本模板导出office可以正常显示读取的word或excel文件了。

 

相关文章:

  • 2022-12-23
  • 2021-12-15
  • 2021-10-01
  • 2022-02-07
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-15
  • 2021-06-28
  • 2022-02-11
  • 2021-07-14
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案