就是说有几个选择的搜索条件,点击“搜索”出现搜索结果。
现在需要增加一个导出按钮,将搜索的数据excel导出,求大家帮忙 ,最好有例子哈。

解决方案 »

  1.   

    点导出后 你还是将搜索的条件传入后台
    在后台重新查询 后 用POI 将结果集写入excel文件因为一般的查询都是分页的  而导出一般是要所有符合条件的
      

  2.   

    这个简单啊。
    设置一个模版、然后根据你的查询用的SQL或者HQL再查一遍数据库就好了啊。
    然后把数据放进模版里。我们做的项目还可以把查询结果返回列位置变换和隐藏、导出时仍然所见即所得。
      

  3.   


    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();
        }
      

  4.   


    HSSFSheet sheet = book.createSheet("sheet name");
      

  5.   

    不用那么麻烦。。我以前写过。。直接在jsp上就能写
    晚上回家帮你找找代码