zoukankan      html  css  js  c++  java
  • Jasper模板导出为Excel、PDF

    /**  
     * @Description: 将模板导出为Excel
     * @author: 
     * @date: 2018年3月22日 下午8:57:24
     * @param pagename 模板文件名称
     * @param params 导出参数
     * @param javaBean 报表数据源实体类
     * @param request 请求对象
     * @param response 响应对象
     * @throws JRException Jasper异常
     * @throws IOException IO异常
     */
    @Override
    public void exportTemplateToExcel(String pagename, Map<String, Object> params, Object javaBean,
          HttpServletRequest request, HttpServletResponse response) throws JRException, IOException {
       List<Object> list = new ArrayList<Object>();
       list.add(javaBean);
       // 获取模板
       JasperReport jasperReport = getJasperReport(pagename);
       // 创建数据源
       JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(list);
       // 设置jasper文件夹的路径
       params = setJasperPath(params);
       // 填充模版
       JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
       // 生成文件名
       String fileName = UUID.randomUUID().toString().toUpperCase() + ".xlsx";
       // 资源文件完整路径
       String completePath = getPdfUrl(request, fileName);
       // 服务器文件临时路径
       String templatePath = getTempFoleder() + "/" + fileName;
       // 设置response参数,用于打开下载页面
       response.reset();
       response.setContentType("application/x-msdownload;");
       response.setHeader("Content-Disposition",
             "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));
       // 创建Jasper Excel导出类
       JRXlsxExporter exporter = new JRXlsxExporter();
       // 设置导出配置项
       SimpleXlsxReportConfiguration conf = new SimpleXlsxReportConfiguration();
       conf.setWhitePageBackground(false);
       conf.setDetectCellType(true);
       exporter.setConfiguration(conf);
       // 设置输入项
       ExporterInput exporterInput = new SimpleExporterInput(jasperPrint);
       exporter.setExporterInput(exporterInput);
       // 设置输出项
       OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(templatePath);
       exporter.setExporterOutput(exporterOutput);
       //导出报表
       exporter.exportReport();
       // 重定向到资源文件url
       response.sendRedirect(completePath);
       exporterOutput.close();
    }
    
       /**
        * 导出模板为PDF文件
        * @param pagename
        * @param params
        * @param javaBean
        * @param request
        * @param response
        * @throws JRException
        * @throws IOException
        */
       @Override
       public void exportTemplateToPdf(String pagename, Map<String, Object> params, Object javaBean,
                                       HttpServletRequest request, HttpServletResponse response) throws JRException, IOException {
           List<Object> list = new ArrayList<Object>();
           list.add(javaBean);
           // 获取模板
           JasperReport jasperReport = getJasperReport(pagename);
           // 创建数据源
           JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(list);
           // 设置jasper文件夹的路径
           params = setJasperPath(params);
           // 填充模版
           JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, dataSource);
           // 生成文件名
           String fileName = UUID.randomUUID().toString().toUpperCase() + ".pdf";
           // 资源文件完整路径
           String completePath = getPdfUrl(request, fileName);
           // 服务器文件临时路径
           String templatePath = getTempFoleder() + "/" + fileName;
           // 设置response参数,用于打开下载页面
           response.reset();
           response.setContentType("application/pdf;");
           response.setHeader("Content-Disposition",
               "attachment;filename=" + new String(fileName.getBytes("utf-8"), "ISO-8859-1"));
           //定义报表输出源
           JRPdfExporter exporter = new JRPdfExporter();
           // 设置输入项
           ExporterInput exporterInput = new SimpleExporterInput(jasperPrint);
           exporter.setExporterInput(exporterInput);
           // 设置输出项
           OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(templatePath);
           exporter.setExporterOutput(exporterOutput);
           //导出报表
           exporter.exportReport();
           // 重定向到资源文件url
           response.sendRedirect(completePath);
           exporterOutput.close();
       }
  • 相关阅读:
    Chrome浏览器扩展开发系列之三:Google Chrome浏览器扩展的架构
    Chrome浏览器扩展开发系列之一:初识Google Chrome扩展
    Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展
    Chrome浏览器扩展开发系列之四:Browser Action类型的Chrome浏览器扩展
    鼠标定位问题总结
    Chrome浏览器扩展开发系列之八:Chrome扩展的数据存储
    Chrome浏览器扩展开发系列之七:override页面
    Chrome浏览器扩展开发系列之六:options 页面
    Chrome浏览器扩展开发系列之二:Google Chrome浏览器扩展的调试
    Chrome浏览器扩展开发系列之九:Chrome浏览器的chrome.alarms.* API
  • 原文地址:https://www.cnblogs.com/qiushuiblog/p/10821145.html
Copyright © 2011-2022 走看看