jquery导入excel数据,jqgrid导出excel
最近需要在网页上实现导出excel文件的功能。因为javascript本身没有操作本地文件的权限,除非使用ActiveX,否则既麻烦又不安全,完全没必要使用。因此,从页面上的表中获取数据并将其保存为本地文件是不可行的。
我们要导出的是表中的数据,而表中的数据来自服务器,所以我们可以从服务器下载数据,保存到本地作为文件。
服务器端实现代码:
ServletOutputStream out=null
//设置输出csv的头信息
response . set content type( text/CSV );
String disposition= attachmentfileName=data . CSV ;
response . set header( Content-Disposition ,处置);
//获取输出对象
out=response . get output stream();
//获取数据
byte[]blob data=CSV parser . parse CSV(RS)。getBytes();
out . write(blob data);
out . flush();
out . close();
}catch(异常e){
扔e;
}最后{
如果(出!=空)
out . close();
}
有必要解释一下句子的代码。csv解析器。parseCsv (rs)。CSV parser是我在别处实现的一个类,用于将数据库中的ResultSet对象转换为CSV数据。Parse CSV方法的参数RS是ResultSet对象,返回CSV格式的字符串数据。
我用iframe下载客户端。写一个通用的方法,可以把这个函数放在一个js文件里,用的时候直接在页面上调用。
//带入的url根据查询的数据返回csv
函数bsuExportCsv(url){
//如果页面中没有可供下载的iframe,则在页面中添加iframe。
if($(#downloadcsv )。长度=0)
$(body )。append( iframe id= download CSV display:none /iframe
$(#downloadcsv )。attr(src ,URL);
}
url是请求数据的servlet的地址,它必须以csv格式返回数据。
首先,确定页面中是否存在id为downloadcsv的iframe。如果没有将iframe添加到body标记中,则将iframe的src属性设置为传入的url地址。
只需在要导出的页面上调用bsuexportcsv( 3358 localhost:8080/CSV ELT )。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。