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 相关文章推荐
告诉大家什么是JSON
Jun 10 Javascript
Js event事件在IE、FF兼容性问题
Jan 01 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 Javascript
jquery仅用6行代码实现滑动门效果
Sep 07 Javascript
JS实现“隐藏与显示”功能(多种方法)
Nov 24 Javascript
JS 拦截全局ajax请求实例解析
Nov 29 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
May 02 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
微信小程序遍历Echarts图表实现多个饼图
Apr 25 Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 Javascript
vue如何实现动态加载脚本
Feb 05 Javascript
关于Vue中的options选项
Mar 22 Vue.js
关于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
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
python开启debug模式的方法
2019/06/27 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python实现元素等待代码实例
2019/11/11 Python
python切割图片的示例
2020/11/12 Python
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
廉洁自律承诺书
2014/03/27 职场文书
班级口号大全
2014/06/09 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年检验科工作总结
2014/11/22 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2015初中团委工作总结
2015/07/28 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery