您的位置:首页 > 编程语言 > ASP

通过ASP.NET实现到Word的导出方案的对比和疑问!!!

2004-08-05 16:32 302 查看
日前,本人正在进行一个Web项目的开发,使用ASP.NET完成。目前实现的报表模块,该报表是通过自行编程实现表格的输出,并通过微软的OWC技术实现Chart的生成。当用户看了这个部分的半成品后,又提出了需要将报表页面导出到Word或者Excel的功能性要求。

经过一个多星期的查询和探讨,对上面的要求提出了如下的实现方案的设想:

1.直接通过Java脚本另存,也就是把整个html文档都另存为doc。这样做的唯一优点就是简单省事,但是缺点是保存的文档包括很多额外的html标签(head,form,hiden等等),而且图片等等都是下载到files目录下的,用户还需要对下载下来的东西进行重新整理和排版。这样还不如就单纯允许用户导出Table和Chart,这就是第二种方法。

2.通过Response.Write将所需下载的控件的html标签另存为doc或者xls。这种方法现在从技术上已经解决,但是唯一无法实现的就是在一个doc中附带输出一个或多个Chart(因为下载的文件是一定的编码,而不能既是word,又是gif或者别的),只有分别另存。分开导出也容易实现到xls的导出,因为图片无法导出到xls吧!

3.通过调用“Microsoft Office 自动化”实现精确控制。通过Word或者Excel里面的宏录制来帮助实现编码,而且对于固定格式的文档还可以通过Template实现。但是,在经过对它在服务器端编程技术的深入探讨,发现该技术存在很多问题。而且微软不建议在服务器端使用该技术,而且也不提供技术支持。这些问题主要包括:降低安全级别来实现该技术;容易出现死锁的情况;需要经过一定配置来实现不同程度的自动化,而且有些配置之间也是相互矛盾的;等等(参见Microsoft Knowledge Base Article - 257757 《INFO:在服务器端自动运行 Office 的注意事项》)

4.在客户端通过“Microsoft Office 自动化”实现。这种方案对客户端有一定的要求,而且还要实现B和C之间的交互,有一定的技术难度和维护问题,同样有一定的风险;

5.通过Office2003对XML文件格式的支持,在服务器端构造这样的流,然后下载到客户端。这种方案在目前实现来看应该没有太大的技术困难,而且图文可以同时在一个文档中。但是这种方案在实现起来较为麻烦,而且对客户端使用的Office版本也必须是Office2003。

6.用户目前客户机都是Windows98和Office2000或者Office97。要支持早期版本就必须通过RTF格式的类型实现。但是RTF难以理解,构造起来也非常麻烦(例如图形必须根据大小分段)。

这6中方案有些不能很好的满足用户的需求,有些实现起来有交大的风险,有的则因为实现复杂。不知道各位有何其它方法???
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: