jquery实现excel导出的方法


Posted in Javascript onApril 04, 2013

由于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")就可以了.

Javascript 相关文章推荐
javascript 打开页面window.location和window.open的区别
Mar 17 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
一个封装js代码-----展开收起效果示例
Jul 03 Javascript
jQuery版本升级踩坑大全
Jan 12 Javascript
基于AngularJS+HTML+Groovy实现登录功能
Feb 17 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
js实现淡入淡出轮播切换功能
Jan 13 Javascript
Vue自定义toast组件的实例代码
Aug 15 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
Jun 03 Javascript
Layui多选只有最后一个值的解决方法
Sep 02 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 #Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 #Javascript
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 #Javascript
用Jquery重写windows.alert方法实现思路
Apr 03 #Javascript
如何使用jquery动态加载js,css文件实现代码
Apr 03 #Javascript
关于js注册事件的常用方法
Apr 03 #Javascript
JavaScript栏目列表隐藏/显示简单实现
Apr 03 #Javascript
You might like
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
JS实现小米轮播图
2020/09/21 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
工作会议欢迎词
2014/01/16 职场文书
公益广告宣传方案
2014/02/28 职场文书
后勤主管岗位职责
2014/03/01 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
本科生求职信
2014/06/17 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS