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 Chart 插件整理
Jun 18 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
Jul 10 Javascript
Table冻结表头示例代码
Aug 20 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
javascript控制台详解
Jun 25 Javascript
RequireJS入门一之实现第一个例子
Sep 30 Javascript
Node.js实现JS文件合并小工具
Feb 02 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
6种JavaScript继承方式及优缺点(小结)
Feb 06 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
PHP中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
javascript hashtable 修正版 下载
2010/12/30 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
基于vue.js的分页插件详解
2017/11/27 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python中判断子串存在的性能比较及分析总结
2019/06/23 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
活动策划求职信模板
2014/04/21 职场文书
我爱我校演讲稿
2014/05/21 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
保密工作承诺书
2014/08/29 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
新员工入职感想
2015/08/07 职场文书