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

 我来答
百度网友5e03f2e
2009-03-04 · TA获得超过306个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:294万
展开全部
你的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();
SOAOfficeX.ExcelResSheet sheet1 = SOAExcel.openSheet("Sheet1"); // 打开一个Sheet
sheet1.openCell("D"+String.valueOf(8+i)).setValue(rs.getString("Count")); //循环填充数据。
SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl(response);
SOACtrl.assign(SOAExcel); // 绑定数据
// 打开模板并生成最终的excel报表
SOACtrl.webOpen("doc/test.xls", 1, UserName, "Excel.Sheet");

Excel文件不但动态填充生成,而且在网页里直接显示生成的Excel给终端用户,由于使用了1打开模式,Excel是只读显示的。

用SOAOffice输出Excel,就不会再有上述烦恼。通过SOAOffice不仅能够动态填充excel,而且还能在浏览器里直接浏览excel、或者下载、另存
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式