读书人

jqgrid 报表数据导出

发布时间: 2012-11-23 00:03:43 作者: rapoo

jqgrid 表格数据导出
jqgrid 表格数据导出
jqgrid并没有自带导出表格数据的方法,这里就自己实现了一个,尝试过在页面直接将数据导出,发现只有IE下可以通过调用saveas来实现,但是别的浏览器不支持,于是考虑将数据传回后台,然后后台返回下载文件来实现。
首先,是一段javascript脚本:

import java.io.BufferedOutputStream;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;public class DownLoadTableDataAction extends HttpServlet {static Logger log = Logger.getLogger(DownLoadTableDataAction.class);@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {if(log.isInfoEnabled())log.info("DownLoadTableDataAction is starting ...");req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("gbk");String content = req.getParameter("content");String filename = req.getParameter("filename");content = content.replace("+nl+", "\n");resp.setContentType("application/octet-stream;charset=gbk"); resp.setHeader("content-disposition", "attachment;filename=" + filename);BufferedOutputStream write = new BufferedOutputStream(resp.getOutputStream());  write.write(content.getBytes("gbk"));write.flush();write.close(); if(log.isInfoEnabled())log.info("DownLoadTableDataAction has completed ...");}}







读书人网 >Web前端

热点推荐