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();
   }

原文地址:https://www.cnblogs.com/qiushuiblog/p/10821145.html

时间: 2024-10-07 18:08:51

Jasper模板导出为Excel、PDF的相关文章

按照word/Excel模板导出word/excel

最近项目要实现下载打印的功能,想了想,用水晶报表实在是大材小用, 用office组件直接就可以实现这一功能. 引用类 using Microsoft.Office.Interop.Word; 建立两个实体类 一个是导出word需要替换内容的配置,一个是替换内容的实体 public class AgentInfoEntity     {                 private string comname; public string ComName         {          

一个不错的能将HTML表格导出为excel,pdf等的jquery插件

https://github.com/kayalshri/tableExport.jquery.plugin https://github.com/kayalshri/ tableExport.jquery.plugin Export HTML Table to JSON XML PNG CSV TXT SQL MS-Word Ms-Excel Ms-Powerpoint PDF Installation jquery Plugin < script type="text/javascri

JXLS模板导出EXCEL

最近做要做一些报表导出的功能,由于表格内容比较复杂,直接生成excel比较麻烦,所以采用模板的方式来做,可惜自己不了解,也证明了自己技术有多差!通过多次资料,终于找到了适合自己的方法.特此记录,方便以后查找. maven用到的包  <dependency>     <groupId>net.sf.jxls</groupId>     <artifactId>jxls-core</artifactId>     <version>1.0

PHP版另类EXCEL导出,按模板导出!

PHP版另类EXCEL导出,按模板导出! 特点: 不需要使用插件!而且支持导出非常好看的Excel! 实例截图: 步骤: 1.找到一个Excel,并将其另存为xml格式 2.修改xml格式文件,中间将 数据部分 替换成PHP代码 3.然后在导出将 该xml 文件用 include引入到系统内,可以得到xml的数据字符串 // 执行文件得到内容 ob_start(); include $file; return ob_get_clean(); 4.最后将这些字符串写入到 xls文件里即可! 参考实

aspose.cells根据模板导出excel

又隔十多天没写博客了,最近都在忙项目的事情,公司人事变动也比较大,手头上就又多了一个项目.最近做用aspose.cells根据模板导出excel报价单的功能,顺便把相关的核心记下来,先上模板和导出的效果图吧,如下: 导出效果图(看到产品图,打不死的程(diao)序(si)员(猿)骚动吧,有没有不禁看了看自己粗大的右手): (其中红色框框起来的是动态填充的内容,工作薄名(产品信息)也是动态输出的) 模板如下: 大概流程是这样,先把需要输出到excel的内容存到一个model里面,然后把该model

POI通过模板导出EXCEL文件

一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中的内容.样式.2.自己需要新增的内容.样式.),还需要设置单元格的样式,在网上搜了一些blog,完成后记录一下. 分析这次需求,最关键的就是如何获取到填充了模板的新HSSFWorkbook,如果获取到它,我们可以熟练的往里面添加内容. 1 File fi = new File("F:/usr/use

kettle 使用excel模板导出数据

通过excel进行高速开发报表: 建设思路: 1.首先制订相关的execl模板. 2.通过etl工具(kettle)能够高速的 将数据库中的数据按excel模板导出成新的excel就可以. 当中kettle 按excel模板导出excel 能够參考: http://type-exit.org/adventures-with-open-source-bi/2010/12/using-the-excel-writer-step/ 或可在我的资源中找.

apache poi根据模板导出excel

需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.user

集算报表应用开发之直接导出Excel/PDF文件

报表应用中有时报表只需生成指定文件,而无需在页面展现,生成的文件常见于Excel.PDF等.由于报表不展现,也就无需使用报表提供的tag,可以直接通过程序导出.集算报表提供了丰富的API,允许开发人员编写代码实现自己的业务逻辑.这里通过在servlet中导出Excel为例来看一下报表不展现而直接导出的实现方式. 定义导出Excel的servlet(ExportToExcel),主要代码如下:    1.接收参数 String report =request.getParameter("rpx&q