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 相关文章推荐
JQuery 浮动导航栏实现代码
Aug 27 Javascript
基于javascript html5实现多文件上传
Mar 03 Javascript
JavaScript是如何实现继承的(六种方式)
Mar 31 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
微信小程序实现列表左右滑动
Nov 19 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 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中Date获取时间不正确怎么办
2008/06/05 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
网页javascript精华代码集
2007/01/24 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
详解react-redux插件入门
2018/04/19 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
分析在Python中何种情况下需要使用断言
2015/04/01 Python
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
揠苗助长教学反思
2014/02/04 职场文书
《灯光》教学反思
2014/02/08 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
满月酒邀请函
2015/01/30 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
导游词之西安骊山
2019/12/20 职场文书
处理canvas绘制图片模糊问题
2022/05/11 Javascript