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中serialize() 序列化
Mar 13 Javascript
JS显示下拉列表框内全部元素的方法
Mar 31 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
Jul 02 Javascript
JavaScript for循环 if判断语句(学习笔记)
Oct 11 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
Jan 24 jQuery
Vue.js的模板语法详解
Feb 16 Javascript
JS监听Esc 键触发事键
Apr 14 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中strlen和mb_strlen的区别
2014/08/31 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
python的pstuil模块使用方法总结
2019/07/26 Python
关于python字符串方法分类详解
2019/08/20 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
简单了解Python write writelines区别
2020/02/27 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
新学期开学演讲稿
2014/05/24 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL