jquery实现导出excel,只需要把服务端的内容保存到本地即可,参考下文详细介绍。
1、服务端代码:
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格式的字符串数据。
2、客户端代码
使用iframe进行下载。
大家可以把这个函数放到某个js文件中,使用时直接在页面调用即可。
//带入url根据查询的数据返回csv function bsuExportCsv(url){ //如果页面中没有用于下载iframe,增加iframe到页面中 //by www.jb200.com 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")即可,成功便在眼前了,呵呵。