Springmvc和poi3.9导出excel并弹出下载框

Springmvc 和 poi3.9 用java程序从数据库导出数据到excel(在博客园的第一篇原创博客)

@RequestMapping(value = “/importexcel.htm”, method = RequestMethod.GET)public ModelAndView _importExcel(HttpServletRequest request, HttpServletResponse response, Integer cId) throws Exception {// 获得要导出的数据集List<Map<String, Object>> list = d_ExchangeCodeService.selectExcelRecord(cId);// 创建excel工作簿Workbook wb = new HSSFWorkbook();// 创建第一个sheet(页),并命名Sheet sheet = wb.createSheet(list.get(0).get(“NAME”).toString());// 手动设置列宽。第一个参数表示要为第几列设;,第二个参数表示列的宽度,n为列高的像素数。sheet.setColumnWidth((short) 0, (short) (35.7 * 150));sheet.setColumnWidth((short) 1, (short) (35.7 * 150));sheet.setColumnWidth((short) 2, (short) (35.7 * 150));sheet.setColumnWidth((short) 3, (short) (35.7 * 100));sheet.setColumnWidth((short) 4, (short) (35.7 * 250));sheet.setColumnWidth((short) 5, (short) (35.7 * 150));sheet.setColumnWidth((short) 6, (short) (35.7 * 150));// 创建第一行Row row = sheet.createRow((short) 0);// 创建两种单元格格式CellStyle cs = wb.createCellStyle();CellStyle cs2 = wb.createCellStyle();// DataFormat df = wb.createDataFormat();// 创建两种字体Font f = wb.createFont();Font f2 = wb.createFont();// 创建第一种字体样式f.setFontHeightInPoints((short) 10);f.setColor(IndexedColors.RED.getIndex());f.setBoldweight(Font.BOLDWEIGHT_BOLD);// 创建第二种字体样式f2.setFontHeightInPoints((short) 10);f2.setColor(IndexedColors.BLACK.getIndex());f2.setBoldweight(Font.BOLDWEIGHT_BOLD);// 设置第一种单元格的样式cs.setFont(f);cs.setBorderLeft(CellStyle.BORDER_THIN);cs.setBorderRight(CellStyle.BORDER_THIN);cs.setBorderTop(CellStyle.BORDER_THIN);cs.setBorderBottom(CellStyle.BORDER_THIN);// cs.setDataFormat(df.getFormat(“#,##0.0”));// 设置第二种单元格的样式cs2.setFont(f2);cs2.setBorderLeft(CellStyle.BORDER_THIN);cs2.setBorderRight(CellStyle.BORDER_THIN);cs2.setBorderTop(CellStyle.BORDER_THIN);cs2.setBorderBottom(CellStyle.BORDER_THIN);// cs2.setDataFormat(df.getFormat(“text”));// 创建列(每行里的单元格)Cell cell = row.createCell(0);cell.setCellValue(“用户名”);cell.setCellStyle(cs);cell = row.createCell(1);cell.setCellValue(“订单号”);cell.setCellStyle(cs);cell = row.createCell(2);cell.setCellValue(“兑换券序列号”);cell.setCellStyle(cs);cell = row.createCell(3);cell.setCellValue(“兑换券金额”);cell.setCellStyle(cs);cell = row.createCell(4);cell.setCellValue(“兑换券类型名称”);cell.setCellStyle(cs);cell = row.createCell(5);cell.setCellValue(“使用时间”);cell.setCellStyle(cs);cell = row.createCell(6);cell.setCellValue(“使用结束日期”);cell.setCellStyle(cs);DateFormat df = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);for (short i = 0; i < list.size(); i++) {// Row 行,Cell 方格 , Row 和 Cell 都是从0开始计数的// 创建一行,在页sheet上row = sheet.createRow((short) i + 1);// 在row行上创建一个方格cell = row.createCell(0);cell.setCellValue(list.get(i).get(“usr_UserID”) == null ? “未使用” : list.get(i).get(“usr_UserID”).toString());cell.setCellStyle(cs2);cell = row.createCell(1);cell.setCellValue(list.get(i).get(“ord_OrderID”) == null ? “未使用” : list.get(i).get(“ord_OrderID”).toString());cell.setCellStyle(cs2);cell = row.createCell(2);cell.setCellValue(list.get(i).get(“Account”).toString());cell.setCellStyle(cs2);cell = row.createCell(3);cell.setCellValue(Double.parseDouble(list.get(i).get(“Amount”).toString()));cell.setCellStyle(cs2);cell = row.createCell(4);cell.setCellValue(list.get(i).get(“NAME”).toString());cell.setCellStyle(cs2);cell = row.createCell(5);cell.setCellValue(list.get(i).get(“UsedTime”) == null ? “未使用” : df.format(list.get(i).get(“UsedTime”)).toString());cell.setCellStyle(cs2);cell = row.createCell(6);cell.setCellValue(df.format(list.get(i).get(“BlankOutTime”)).toString());cell.setCellStyle(cs2);}ByteArrayOutputStream os = new ByteArrayOutputStream();try {wb.write(os);} catch (IOException e) {e.printStackTrace();}byte[] content = os.toByteArray();InputStream is = new ByteArrayInputStream(content);// 设置response参数,可以打开下载页面response.reset();response.setContentType(“application/vnd.ms-excel;charset=utf-8”);response.setHeader(“Content-Disposition”, “attachment;filename=” + new String((list.get(0).get(“NAME”).toString() + “.xls”).getBytes(), “iso-8859-1”));ServletOutputStream out = response.getOutputStream();BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(is);bos = new BufferedOutputStream(out);byte[] buff = new byte[2048];int bytesRead;(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {bos.write(buff, 0, bytesRead);}} catch (final IOException e) {throw e;} finally {if (bis != null)bis.close();if (bos != null)bos.close();}return null;},人生最好的旅行,就是你在一个陌生的地方,

Springmvc和poi3.9导出excel并弹出下载框

相关文章:

你感兴趣的文章:

标签云: