生成excel文件
来源:互联网 发布:地理信息平台软件 编辑:程序博客网 时间:2024/04/29 07:51
使用ireport工具
SupplierCountController
/** * 下载 * * @param servletResponse * @see [相关类/方法](可选) * @since [产品/模块版本](可选) */ @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void downloadSupplierResume(HttpServletResponse servletResponse, List<Map<String, Object>> dataMapList) { if (null == dataMapList || dataMapList.isEmpty()) { return; } // 模板 String classesPath = FileExportServiceImpl.class.getClassLoader().getResource("/").getPath(); // 报表report模板文件 File reportFile = new File(classesPath + "/ireport/supplierResumeReport.jrxml"); if (!reportFile.exists()) { LOGGER.error(classesPath + "/ireport/supplierResumeReport.jrxml" + "模板文件不存在"); } else { FileInputStream parentReportFis = null; JasperPrint jasperPrint = null; JasperReport jasperReport = null; ServletOutputStream printWriter = null; JRExporter jrExporter = null; try { // 根据拼装的模板文件路径读取模板文件 parentReportFis = new FileInputStream(reportFile); // 从文件输入流中解析模板文件 jasperReport = JasperCompileManager.compileReport(parentReportFis); String supplierName; List<Map<String, Object>> dataList; List<Map<String, Object>> emptyList = new ArrayList<Map<String, Object>>(); Map<String, Object> emptyMap = new HashMap<String, Object>(); emptyMap.put("resumeResult", " "); emptyMap.put("recommendSource", " "); emptyMap.put("sourceCode", " "); emptyMap.put("gwName", " "); emptyMap.put("uploadTime", " "); emptyList.add(emptyMap); List<JasperPrint> jpList = new ArrayList<JasperPrint>(); List<String> nameList = new ArrayList<String>(); if (dataMapList.isEmpty()) { dataMapList.add(new HashMap<String, Object>()); } for (Map<String, Object> tempMap : dataMapList) { if (null == tempMap || tempMap.isEmpty()) { continue; } else { supplierName = String.valueOf(tempMap.get("supplierName")); dataList = (List<Map<String, Object>>) tempMap.get("dataList"); if (null == dataList || dataList.isEmpty()) { dataList = emptyList; } // 向解析过的模板中填充数据 jasperPrint = JasperFillManager.fillReport(jasperReport, tempMap, new JRBeanCollectionDataSource(dataList)); jpList.add(jasperPrint); nameList.add(supplierName); } } // 导出excel jrExporter = new JRXlsExporter(); // 设置导出的文件名称 jrExporter.setParameter(JRXlsExporterParameter.SHEET_NAMES, nameList.toArray(new String[nameList.size()])); // 设置导出对象 需要到处的 已经解析过、填充过数据的模板 if (jpList.size() > 1) { jrExporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, jpList); } else if (jpList.size() > 0) { jrExporter.setParameter(JRExporterParameter.JASPER_PRINT, jpList.get(0)); } ByteArrayOutputStream oStream = new ByteArrayOutputStream(); jrExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oStream); jrExporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8"); jrExporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); // 删除记录最下面的空行 jrExporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); // // 删除多余的columnHeader jrExporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); // 显示边框 jrExporter.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); // 初始化excel导出对象 jrExporter.exportReport(); // 设置页面不缓存 servletResponse.reset(); servletResponse.setContentType("application/ms-excel;charset=UTF-8"); servletResponse.setHeader("Content-Disposition", "attachment; filename=" + new String("供应商简历报表".getBytes("UTF-8"), "ISO-8859-1") + ".xls"); printWriter = servletResponse.getOutputStream(); byte[] bytes = oStream.toByteArray(); servletResponse.setContentLength(bytes.length); if (bytes != null && bytes.length > 0) { // 把生成excel临时文件从缓存中写入输出流中 printWriter.write(bytes, 0, bytes.length); printWriter.flush(); // printWriter.close(); } } catch (Exception e) { e.printStackTrace(); } finally { if (null != parentReportFis) { try { parentReportFis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
0 0
- JAVA生成EXCEL文件
- JAVA生成EXCEL文件
- JSP生成EXCEL文件
- php生成EXCEL文件
- Java生成EXCEL文件
- c#生成excel文件
- JAVA生成EXCEL文件
- jxls生成Excel文件
- java生成Excel文件
- php生成excel文件
- java生成Excel文件
- JAVA生成EXCEL文件
- 生成excel文件代码
- 生成Excel文件
- PHPexcel 生成 excel 文件
- XLSTransformer生成excel文件
- android 生成Excel文件
- java生成excel文件
- AndroidManifest.xml 配置文件
- spark出现GC overhead limit exceeded和java heap space
- jquery点击复合隐藏显示内容
- 望天湖一游
- gdb调试详解:例子说明
- 生成excel文件
- 到底EJB是什么
- android多渠道打包工具
- iOS layer层与优化(界面卡顿)
- 多线程 同步与死锁
- C++88个注意点子之31~40
- Xcode 给建好的项目添加Git
- Android第三方开源对话消息提示框:SweetAlertDialog(sweet-alert-dialog)
- maven scope含义的说明