Springmvc和poi3.9导出excel并弹出下载框
来源:互联网 发布:datatype json 编辑:程序博客网 时间:2024/05/16 11:23
点击打开链接
@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; // Simple read/write loop. while (-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; }
0 0
- Springmvc和poi3.9导出excel并弹出下载框
- springmvc导出excel并弹出下载框
- springmvc导出excel并弹出下载框
- JavaWeb项目导出Excel文件并弹出下载框
- 导出Excel并自动弹出浏览器下载
- Java基于jxl与模板导出excel并弹出下载
- Java基于jxl与模板导出excel并弹出下载
- Java通过Spring MVC导出批量Excel文件压缩包,并弹出下载框
- excel 导出并下载
- 利用poi3.9做的excel导出工具
- springmvc导出excel弹出框,前端用ajax请求
- SpringMVC+POI下载文件模板和导出Excel
- POI3.8 导出大数据excel
- java 导出并下载excel
- JAVA导出EXCEL并下载
- java excel导出并下载
- java导出Excel并下载
- java导出excel并下载
- spring的applicationContext和beanFactory区别
- 文本框input的高级代码
- Java中堆内存和栈内存详解
- git and repo 地址
- android native service编写及两个服务进程通讯
- Springmvc和poi3.9导出excel并弹出下载框
- 先验与后验概率区别
- C++实现各种基础排序(冒泡、选择、快排、插入、堆排、希尔、归并)
- matlab函数interp2及其c++代码
- android的Service----讲述四大组件之一服务
- Android ADB server didn't ACK * failed to start daemon
- Android如何去除标题栏
- 【新机械楼537的Kinect编程学习基础篇(一)】最简单的通过kinect获取图像的代码
- rdtsc 备忘