当前位置: 代码迷 >> Java Web开发 >> 怎么按照搜索条件的结果导出excel
  详细解决方案

怎么按照搜索条件的结果导出excel

热度:8195   发布时间:2013-02-25 21:11:17.0
如何按照搜索条件的结果导出excel
就是说有几个选择的搜索条件,点击“搜索”出现搜索结果。
现在需要增加一个导出按钮,将搜索的数据excel导出,求大家帮忙 ,最好有例子哈。

------解决方案--------------------------------------------------------
点导出后 你还是将搜索的条件传入后台
在后台重新查询 后 用POI 将结果集写入excel文件

因为一般的查询都是分页的 而导出一般是要所有符合条件的
------解决方案--------------------------------------------------------
这样说得也太泛泛了 建议你在网上找些例子 然后调试出什么问题了大家再讨论
------解决方案--------------------------------------------------------
这个简单啊。
设置一个模版、然后根据你的查询用的SQL或者HQL再查一遍数据库就好了啊。
然后把数据放进模版里。

我们做的项目还可以把查询结果返回列位置变换和隐藏、导出时仍然所见即所得。
------解决方案--------------------------------------------------------
Java code
POI code:public static void writeExcel(OutputStream out, List<BaseBean> beanList)         throws Exception {      HSSFWorkbook book = new HSSFWorkbook();      for(int i = 0; i < beanList.size(); i++) {         HSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);         //row.setHeight((short) 255);         cell = row.createCell(0);         cell.setCellValue(String.valueOf(beanList.get(i).getName()));      }      book.write(out);   }download code:    protected void doPost(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        String sufix = request.getParameter("s");        String path = request.getParameter("p") + "." + sufix;        try {            String fileName = request.getParameter("f").trim();            int c = fileName.lastIndexOf(".");            String name = fileName.substring(0, c > 0 ? c : fileName.length())                    + "." + sufix;            response.setContentType("application/octet-stream");            response.setHeader("Content-Disposition", "attachement;filename="                    + new String(name.getBytes("GBK"), "ISO-8859-1"));            File file = new File(Const.getCurrentUtterlyPath() + path);            if (!file.exists()) {                throw new IOException(fileName + ",所下载的文件不存在!");            }            response.setContentLength(Integer.parseInt(file.length() + ""));            InputStream fs = new FileInputStream(file);            OutputStream os = response.getOutputStream();            byte[] buff = new byte[1024];            int readCount = 0;            while ((readCount = fs.read(buff)) != -1) {                os.write(buff, 0, readCount);            }            if (fs != null) {                fs.close();            }            if (os != null) {                os.close();            }        } catch (IOException e) {            LOG.error("error: " + e.getMessage() + ",path: " + path);            throw e;        }        response.setStatus(response.SC_OK);        response.flushBuffer();    }
------解决方案--------------------------------------------------------
汗!!! 网上一大把!! 有人贴代码,我就不贴了
------解决方案--------------------------------------------------------
不用那么麻烦。。我以前写过。。直接在jsp上就能写
晚上回家帮你找找代码。。。
  相关解决方案