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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
Jquery中获取iframe的代码
Jan 11 Javascript
Javascript学习笔记 delete运算符
Sep 13 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
Aug 24 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
解析Node.js基于模块和包的代码部署方式
Feb 16 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
关于js二维数组和多维数组的定义声明(详解)
Oct 02 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
js实现搜索提示框效果
Sep 05 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 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
加速XP搜索功能堪比vista
2007/03/22 PHP
谷歌音乐搜索栏的提示功能php修正代码
2011/05/09 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
PHP实现微信退款功能
2018/10/02 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python批量更改文件名的实现方法
2017/10/29 Python
python实现ip代理池功能示例
2019/07/05 Python
pandas的qcut()方法详解
2019/07/06 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
初中学习计划书范文
2014/09/15 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS