蝙蝠岛资源网 Design By www.hbtsch.com

由于javascript本身是没有权限操作本地文件的,除非使用ActiveX,但这东西麻烦又不安全,完全不想用.所以从页面的表格中获得数据保存成本地文件的办法是行不通了.

我们想要导出的是表格中的数据,表格中的数据又是从服务器来的,那我们把服务器上的数据下到本地保存成文件不就可以了.

服务端实现代码:

复制代码 代码如下:
ServletOutputStream out = null;
try{
//设置输出csv的头信息
 response.setContentType("text/csv");
 String disposition = "attachment; fileName=data.csv";
 response.setHeader("Content-Disposition", disposition);
 //获得输出对象
 out = response.getOutputStream();
 //获得数据
 byte[] blobData = CSVParser.parseCsv(rs).getBytes();
 out.write(blobData);
 out.flush();
 out.close();
}catch(Exception e){
 throw e;
}finally{
 if(out != null)
  out.close();
}

有句代码有必要解释一下CSVParser.parseCsv(rs).  CSVParser是我在其他地方实现的一个将从数据库中查出的ResultSet对象转换为CSV数据的类.parseCsv方法的参数rs就是ResultSet对象.返回的就是csv格式的字符串数据

客户端我是利用iframe进行下载的。写了个比较通用的方法,大家可以把这个函数放到某个js文件中,使用时直接在页面调用即可


复制代码 代码如下:
//带入url根据查询的数据返回csv
function bsuExportCsv(url){
 //如果页面中没有用于下载iframe,增加iframe到页面中
 if($('#downloadcsv').length<=0)
  $('body').append("<iframe id=\"downloadcsv\" style=\"display:none\"></iframe>");
 $('#downloadcsv').attr('src',url);
}

url是要请求数据的servlet的地址,该地址一定是要返回csv格式的数据

先判断页面中是否有id为downloadcsv的iframe如果没有在body标签中加入iframe.然后将iframe的src属性设置为传入的url地址.

使用时知道在要导出的页面调用bsuExportCsv("http://localhost:8080/csvservelt")就可以了.

标签:
jquery,excel,导出

蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com

评论“jquery实现excel导出的方法”

暂无jquery实现excel导出的方法的评论...

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。