您的位置:首页 > 其它

Jxls导出excel的若干方式总结(十五)-- 简单分析与总结

2011-09-01 17:36 393 查看
首先对jxls做一个简单介绍,这是一个操作可以excel的开源工具组件包。

它依赖于POI、Commons BeanUtils、Commons Collections、Commons
JEXL、Commons Logging、Commons Digester等一些开源工具包。

通过它所依赖的包明 显可以看到他支持 jexl 和 poi 的所有针对excel操作的功能。

具体细节大家可以去它的官方网站了解,这是它的网站地址http://jxls.sourceforge.net/reference/installation.html。

在jxls工具包开发过程中,始终贯穿着一个主题,那就是excel模板,因此excel模板的设置是开发过程中的一个重点,当然它的各项功能方法也是重要的部分。

因为前面的测试开发过程中,常会用到jdbc的一些操作,因此有必要对jxls常用的jdbc操作封装一个工具类。另外,我们既然已经通过jxls解决了绝大多数的针对excel导出的操作,那么我们也可以将这也方法进行进一步封装,写一个新的工具类。只待以后传参调用即可。就不贴出来了,大家自己写吧。

关于导出时弹出excel另存为的实现方案:

写一个jsp页面如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" pageEncoding="GBK" contentType="text/html;charset=GBK" isELIgnored="false"%>
<%@ page import="java.io.*, com.adam.dev.utils.GUIDGenerator,org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%
String guid = new GUIDGenerator().getGUID();
String fileName = guid.substring(0,14)+".xls";
response.reset();
response.setCharacterEncoding("GBK");
response.setContentType("application/vnd.ms-excel");	//设定文件输出类型
//设定文件展现方式(在线打开【inline】/在线下载【attachment】)
response.setHeader("Content-Disposition","attachment;filename="+fileName);
HSSFWorkbook workBook = (HSSFWorkbook)request.getSession().getAttribute("workBook");
if(workBook!=null && workBook.getBytes().length>0){
OutputStream os = response.getOutputStream();
workBook.write(os);
os.flush();
os.close();
out.clear();
out = pageContext.pushBody();
}
%>
其中的GUIDGenerator是我自己写的一个工具类,用于生成全局唯一标识的,其实就是时间与随机数等拼接字符串。这里刚好利用到了而已。

当点击按钮导出excel报表时,通过jquery的ajax中的complete回调函数来触发这个页面对应的action配置路径就会弹出导出另存为的对话框。

这是我的js方法:

//点击【打印]】按钮
$('#btnPrint').click(function(){
var url="../subCompany/exportExcel.do";
//alert(url);
$.ajax({
url:url,
//完成后跳转的页面
complete:function(){
//location.href ="../subCompany/doListQuery.do";
self.location.href="../powerStation/generatorIframe.do";
}
});
});


大家看看效果:



导出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐