把jsp 页面原样下载到客户端的一个excel文件中

来源:百度知道 编辑:UC知道 时间:2024/05/29 18:57:06

你的jsp页面是不是显示了从数据库查询得到的表格,现在想把表格导出到客户端的excel文件里?

首先说说现在Java编辑Excel文件的两大开源工具:jakarta poi和JavaExcelAPI(简称JXL),这两套工具我都试用了一这段时间,感觉各有优劣吧。poi在某些细节有些小Bug并且不支持写入图片,对中文的支持不行;JXL就惨了,除了支持写入图片外,我暂时看不到它比POI好的地方,我碰到的主要的问题就是对公式支持不是很好,很多带有公式的Excel文件用JXL打开后,公式就丢失了(比如now(),today()),在网上看到其他大虾评论说JXL写入公式也有问题,另外,JXL操作Excel文件的效率比POI低一点。

poi和jxl都是直接分析excel文件格式进行操作的,最大的缺点是对excel的各种特性和格式不能全面支持,也总是不支持最新版的excel(总有一个研发滞后期)。

还有使用Jacob的方案,jacob使用的是com技术,对excel进行COM自动化调用,缺点是服务器端必须安装excel,而且web的并发访问经常会令自动化隐藏运行的excel进程死掉。unix等操作系统无法安装ms office。

现在有一个最佳的解决方案,就是采用SOAExcel技术。SOAExcel是SOAOffice中的一个专门负责Excel读写的纯Java组件。
由于是纯Java组件,所以服务器端不需安装office。 SOAExcel含有Sheet、Cell等类似Excel的简化接口,调用简单。SOAExcel不但能能把数据库字段值动态填充到Excel单元格,还能把用户输入的单元格的值提出给开发者保存到数据库。
SOAExcel能够在客户端浏览器的网页里通过SOAOffice直接显示生成的Excel,用户不必下载再打开观看内容。由于SOAExcel是自动化客户端安装的excel进行工作的,所以不存在poi和jxl对excel版本格式支持的问题,也不存在jacob服务器端自动化问题。

举个例子:
SOAOfficeX.ExcelResponse SOAExcel = new SOAOfficeX.ExcelResponse();