这段时间一直在研究ireport如何和springmvc结合来实现报表的显示
网上查了很多资料,从各位前辈们的经验下结合自己的心得总结了SpringMVC结合ireport采用javabean作为数据源的实现方式,并总结代码如下:
Ireport采用javabean作为数据源实现数据的载入,对于java中,使用得到的list集合封装到JRBeanCollectionDataSource中来得到数据。最后通过JRHtmlExporter将结果展现给用户。
输出为html格式的设计方案:
@RequestMapping("/customer/reporthtml.do") public void report(HttpServletRequest request, HttpServletResponse response) throws IOException, JRException { String ctxpath = request.getSession().getServletContext() .getRealPath("/report/beandata.jasper"); List<HKCustomer> listInfo = this.hkCustomerService.listAllCustomers(); File reFile = new File(ctxpath); Map parameters = new HashMap();//根据变量来查询 JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listInfo); JasperPrint jasperPrint = JasperFillManager.fillReport( reFile.getPath(), parameters, ds); JRHtmlExporter exporter = new JRHtmlExporter(); //输出为html格式的报表文件 exporter.setParameter(JRHtmlExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRHtmlExporterParameter.OUTPUT_STREAM,response.getOutputStream()); exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.FALSE); //移除设计报表中的空白行 exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporter.setParameter(JRHtmlExporterParameter.CHARACTER_ENCODING, "utf-8"); exporter.exportReport(); }
输出为execl表格格式
@RequestMapping("/customer/reportxls.do") public void exportxls(HttpServletRequest request, HttpServletResponse response) throws IOException, JRException { String ctxpath = request.getSession().getServletContext() .getRealPath("/report/beandata.jasper"); List<HKCustomer> listInfo = this.hkCustomerService.listAllCustomers(); File reFile = new File(ctxpath); Map parameters = new HashMap(); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listInfo); JasperPrint jasperPrint = JasperFillManager.fillReport( reFile.getPath(), parameters, ds); JRXlsExporter exporter=new JRXlsExporter(); exporter.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRXlsExporterParameter.OUTPUT_STREAM, response.getOutputStream()); exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); /设置输出的格式 response.setHeader("Content-Disposition", "attachment;filename=customer.xls"); response.setContentType("application/vnd_ms-excel"); exporter.exportReport();
设置输出为Pdf格式的文件
@RequestMapping("/customer/reportpdf.do") publicvoid exportpdf(HttpServletRequest request,HttpServletResponse response) throwsJRException, IOException{ Stringctxpath = request.getSession().getServletContext() .getRealPath("/report/beandata.jasper"); List<HKCustomer>listInfo = this.hkCustomerService.listAllCustomers(); FilereFile = new File(ctxpath); Mapparameters = new HashMap(); JRBeanCollectionDataSourceds = new JRBeanCollectionDataSource(listInfo); JasperPrintjasperPrint = JasperFillManager.fillReport( reFile.getPath(),parameters, ds); JRPdfExporterexporter = new JRPdfExporter(); exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT,jasperPrint); exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM,response.getOutputStream()); response.setHeader("Content-Disposition","attachment;filename=customer.pdf"); response.setContentType("application/pdf"); response.setCharacterEncoding("utf-8"); exporter.exportReport(); }
相关推荐
4. **配置JavaBean数据源**:在iReport中,选择“New Data Source”创建新的数据源,选择“JavaBean”类型。接着,提供JavaBean类的完整路径,并列出将用于报表的属性。每个属性将在报表字段中对应一个列。 5. **...
4. **处理数据源**:报表需要数据来展示,这可以通过JavaBean、Map或者自定义数据源实现。确保中文数据在传递过程中不被编码错误,可以使用UTF-8编码。 5. **生成PDF**:使用`JasperFillManager.fillReport()`方法...
这个服务器可能是基于Spring、Struts或其它MVC框架构建的,通过Servlet、JSP和JavaBean来实现业务逻辑。在前端,可能使用HTML、CSS和JavaScript构建用户界面,与后端通过AJAX进行异步通信,使得用户无需刷新页面就能...
总的来说,Spring MVC + JasperReport 5.6.0 的结合可以让你轻松地在Web应用中实现复杂的数据展示和报表功能,通过学习和实践,你可以掌握这个强大的工具,提升开发效率,为用户提供直观、美观的数据报告。
3. **数据源**:可以连接到各种类型的数据库,如MySQL、Oracle等,也可以使用JavaBean、XML文件等作为数据源。 4. **表达式和脚本**:iReport支持Java表达式和脚本,用于动态计算值或执行复杂的逻辑。 5. **样式表...
这可能涉及到Servlet、Spring MVC等框架,以及Ajax技术来实现动态加载和交互。 总之,Java制作报表涉及多个层面,从选择合适的报表库到设计模板,再到数据处理和集成,每个步骤都需要开发者具备扎实的Java基础和...
然后,我们可以使用`JasperFillManager`填充报表,传入数据源(如数据库连接、JavaBean集合等)和报表模板。填充后的报表对象可以通过`JasperExportManager`导出为各种格式。 在Web应用中,为了使用户能够通过...