Excel导出
2016-04-21 10:35
609 查看
所有的导出导入,都是输入输出流,一个读一个写.本文介绍一种导出Excel的方法,凡是你查询出来的数据都可以按自定义顺序导出:
控制层(controlle)代码如下:
这种导出方法比较灵活和简单, 你只需要查出自己想导出的数据就可以导出了!(不清楚的可以留言问我)
控制层(controlle)代码如下:
@RequestMapping(params = "excelTemplate") @ResponseBody public AjaxJson excelTemplate(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); String beginTime = request.getParameter("beginTime"); String endTime = request.getParameter("endTime"); String num = request.getParameter("num"); //前面三个参数是jsp传过来的,分别是开始时间,结束时间,和最新多少条数据 try { String s = request.getSession().getServletContext().getRealPath("/"); String path = s + "export/template/finance.xls"; // 这个是我的excel模板 InputStream in = new FileInputStream(new File(path)); SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd"); // 为了转时间,看你需不需要按时间查询的结果导出 HSSFWorkbook work = new HSSFWorkbook(in); // 得到excel的第0张表 HSSFSheet sheet = work.getSheetAt(0); HSSFRow row = sheet.getRow(0); HSSFCell cell = row.getCell(2); int i = 2;// 计数器 List<Map<String, Object>> list = this.memberFinanceService.selectInfo(beginTime, endTime, num); // 创建每个单元格,添加样式,最后合并 work.getSheetAt(0).shiftRows(3, 3, list.size() - 1); // 把第三行移动到列表的长度-1的地方 // 这个地方我是要把模板的第四行放到最后一行 for (Map map : list) { row = sheet.createRow(i); cell = row.createCell(0);// 得到第0个单元格 if (!(map.get("companyName") == null)) { cell.setCellValue(map.get("companyName").toString()); } else { cell.setCellValue(""); } cell = row.createCell(1); if (!(map.get("memberName") == null)) { cell.setCellValue(map.get("memberName").toString()); } else { cell.setCellValue(""); } cell = row.createCell(2); if (!(map.get("integral") == null)) { cell.setCellValue(map.get("integral").toString()); } else { cell.setCellValue(""); } cell = row.createCell(3); if (!(map.get("equity_coupon") == null)) { cell.setCellValue(map.get("equity_coupon").toString()); } else { cell.setCellValue(""); } cell = row.createCell(4); if (!(map.get("equity_income") == null)) { cell.setCellValue(map.get("equity_income").toString()); } else { cell.setCellValue(""); } cell = row.createCell(5); if (!(map.get("directRewards") == null)) { cell.setCellValue(map.get("directRewards").toString()); } else { cell.setCellValue(""); } cell = row.createCell(6); if (!(map.get("indirectRewards") == null)) { cell.setCellValue(map.get("indirectRewards").toString()); } else { cell.setCellValue(""); } 4000 cell = row.createCell(7); if (!(map.get("balance") == null)) { cell.setCellValue(map.get("balance").toString()); } else { cell.setCellValue(""); } cell = row.createCell(8); if (!(map.get("extractable") == null)) { cell.setCellValue(map.get("extractable").toString()); } else { cell.setCellValue(""); } i++; } HSSFRow row1 = sheet.getRow(list.size() + 2); System.out.println(row1); HSSFCell cell1 = row1.getCell(0); String address = simpleFormat.format(new Date()); OutputStream os = response.getOutputStream();// 取得输出流 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=finance(" + address + ").xls"); work.write(os); os.close(); } catch (FileNotFoundException e) { System.out.println("文件路径错误"); e.printStackTrace(); } catch (IOException e) { System.out.println("文件输入流错误"); e.printStackTrace(); } request.setAttribute("num", num); j.setMsg("导出Excel成功"); return j; }
这种导出方法比较灵活和简单, 你只需要查出自己想导出的数据就可以导出了!(不清楚的可以留言问我)
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树