我们在开发网站时,有很大一部分人采用的是MVC模式,而V是代表视图,关于视图开发的语言,都有语法简单,开发迅速的特点,比如说velocity,jstl等等,而通常用这种语言写成的文件我们通常称其为模板。模板,从名字上可以得出,这是一种通用具有参照性的样板,所有的东西都是按照它的比例剪栽而成的。
在采用MVC方式开发html页时,因为html是普通文本表示的,我们就会用如下形式表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文件,发现里面就是一个文本格式的。代码如下:
而刚才输入的文字"aaaaaaaaaaaaaaaaa",就在其中。如果你需用用变量,那么就可以用变量替换了。
那么程序应该如何处理该文档呢?
其实处理方式和MVC中处理html一样的,只是把这个office的xml文档当作html模板处理并,在程序端另存为文档时也得处理一下,如下列代码:
通过上面形式,就可以把office文件当作文本模板导出office可以正常显示读取的word或excel文件了。
本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2010/03/10/1682436.html ,如需转载请自行联系原作者