jquery实现excel导出的方法
2018-10-12 14:02
507 查看
由于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")就可以了.
您可能感兴趣的文章:
相关文章推荐
- jquery实现excel导出的方法
- 【转】SQL Server数据表在编程中实现导出EXCEL的几种方法
- 一种简单方法实现页面导出(Excel)功能
- 一种简单方法实现页面导出(Excel)功能 选择自 xieyun1977 的 Blog
- asp.net生成Excel并导出下载五种实现方法
- 系统不安装Office导出Excel的实现方法
- CI中在Linux服务器下面实现文件导出Excel的方法解决方案
- jquery实现excel导出
- Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
- Ext.Net 1.x_Ext.Net.GridPanel - Excel导出方法实现
- Ext.Net之 GridPanel - Excel导出方法实现
- asp.net生成Excel并导出下载的实现方法
- PHP实现导出数据到Excel的方法
- flex前端+java后台实现Flex导出Excel的两种方法,
- asp.net生成Excel并导出下载五种实现方法
- 导入Excel和导出Excel的简单方法与程序处理方法,使用Excel程序读写Excel ,实现Excel的多个 Sheets读写并导出
- SQL Server中导入/导出 Excel (包括SQL实现和Net代码实现)的基本方法 .
- javascript实现WEB页面导出为EXCEL或WORD文档的方法
- 导出Excel的多种实现方法
- [JAVA]Java导出Excel数据的一种方法(完美实现,包含表格线)