HTML页面并不总是向用户显示数据输出的最好方式,Spring支持从数据动态生成PDF或Excel文件,并使这一过程变得简单。文档本身就是视图, 从服务器以流的方式加上内容类型返回文档,客户端PC只要运行电子表格软件或PDF浏览软件就可以浏览。下面是一个简单实现的例子:界面两个 button,一个实现excel ,一个pdf.为了使用Excel电子表格,你需要在你的classpath中加入‘poi’库文件,而对PDF文件,则需要iText.jar文件。它 们都包含在Spring的主发布包中。另外经过测试还需要加入包spring-beans.jar,spring- context.jar,spring-web.jar,spring-webmvc.jar。
1、web.xml配置文件,主要配置相应的servlet即可
<!-- Spring MVC 的Servlet,它将加载WEB-INF/spring-servlet.xml 以启动Spring MVC模块-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.form</url-pattern>
</servlet-mapping>
2、控制文件及spring-servlet.xml配置,增加ViewController的配置
<!-- 生成excel或pdf视图 -->
<bean class="com.lzk.controller.ViewController">
</bean>
3、ViewController的代码
package com.lzk.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.supcon.electronic.its.common.ViewExcel; import com.supcon.electronic.its.common.ViewPDF; /** * 生成excel或PDF类型试图 * 根据参数进行数据组装,并跳转到相应的视图页面 * View Controller Bean<br> * * @author Tony Lin Created on 2008-10-22 * @version Version 1.0 */ @Controller @RequestMapping("/view.form") public class ViewController extends BaseController { @RequestMapping(params="method=exceltest",method=RequestMethod.GET) public ModelAndView viewExcel(HttpServletRequest request, HttpServletResponse response){ log.debug("ViewController.viewExcel is started......"); List list = new ArrayList(); Map model = new HashMap(); list.add("test1"); list.add("test2"); model.put("list", list); ViewExcel viewExcel = new ViewExcel(); log.debug("ViewController.viewExcel is ended......"); return new ModelAndView(viewExcel, model); } @RequestMapping(params="method=pdftest",method=RequestMethod.GET) public ModelAndView viewPDF(HttpServletRequest request, HttpServletResponse response) throws Exception { List list = new ArrayList(); Map model = new HashMap(); list.add("test1"); list.add("test2"); model.put("list", list); ViewPDF viewPDF = new ViewPDF(); return new ModelAndView(viewPDF, model); } }
4、用于Excel视图的视图子类
package com.lzk.common; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.web.servlet.view.document.AbstractExcelView; /** * 生成excel视图,可用excel工具打开或者保存 * 由ViewController的return new ModelAndView(viewExcel, model)生成 * @author Tony Lin Created on 2008-10-22 * @version Version 1.0 */ public class ViewExcel extends AbstractExcelView { public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { HSSFSheet sheet = workbook.createSheet("list"); sheet.setDefaultColumnWidth((short) 12); HSSFCell cell = getCell(sheet, 0, 0); setText(cell, "Spring Excel test"); HSSFCellStyle dateStyle = workbook.createCellStyle(); //dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("mm/dd/yyyy")); cell = getCell(sheet, 1, 0); cell.setCellValue("日期:2008-10-23"); //cell.setCellStyle(dateStyle); getCell(sheet, 2, 0).setCellValue("测试1"); getCell(sheet, 2, 1).setCellValue("测试2"); HSSFRow sheetRow = sheet.createRow(3); for (short i = 0; i < 10; i++) { sheetRow.createCell(i).setCellValue(i * 10); } } }
5、用于PDF视图的视图子类
package lzk.common; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.view.document.AbstractPdfView; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; /** * 生成PDF视图,可用PDF浏览器打开或者保存 * 由ViewController的return new ModelAndView(viewPDF, model)生成 * @author Tony Lin Created on 2008-10-22 * @version Version 1.0 */ public class ViewPDF extends AbstractPdfView { public void buildPdfDocument(Map model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { List list = (List) model.get("list"); for (int i = 0; i < list.size(); i++) document.add(new Paragraph((String) list.get(i))); } }
6、JSP页面调用
<a href="<%=path %>/view.form?method=pdftest" target="blank">保存pdf</a> <input name="button" type="button" id="button" value="保存excel" onclick="javascript:window.open('<%=path %>/view.form?method=exceltest');"/>
以上代码是基于spring2.5,JDK1.5,tomcat1.5测试通过。
相关推荐
这个例子展示了如何使用 Spring MVC 和相关的库(Apache POI 和 iText)来动态生成 Excel 和 PDF 文件,提供给用户下载。整个流程涉及到 Spring MVC 的配置、控制器的编写以及与第三方库的集成,实现了从数据到视图...
对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...
在Spring MVC框架中,生成Excel和PDF文件是常见的需求,特别是在数据导出、报表生成或者文档分享场景下。本文将详细讲解如何利用Spring MVC结合开源库实现Excel和PDF的生成。 首先,我们要引入两个关键的库:Apache...
总结来说,Spring MVC结合Apache POI和iText库,可以方便地实现在Web应用中导出Excel和PDF表格的功能。这在数据展示、报告生成等方面非常有用,使得用户可以方便地下载和查看数据。通过自定义视图类和模型数据,可以...
在IT领域,Spring MVC作为Spring框架的一部分,是用于构建Web应用程序的强大工具,而JasperReport则是一款功能丰富的报表生成库,支持多种格式,如PDF、HTML、Excel等。本示例将探讨如何在Spring3 MVC项目中集成...
在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的需求,以提供动态生成和展示各种复杂数据的报表。JasperReports是一款强大的开源报表库,能够帮助开发者创建、设计和展示多种格式的报表,如PDF、HTML、...
在使用easypoi库进行Java项目的Excel表格导入导出时,开发者需要重视其依赖的引入,理解各注解的用途,以及能够解决使用过程中可能出现的类找不到或者依赖冲突等错误。另外,合理使用文档资源,跟进库的版本更新,也...
Spring MVC是Spring框架的一部分,用于构建Web应用程序,而JasperReports是一个开源报告工具,用于生成静态和动态的业务报告。在这个项目中,开发者可能将JasperReports的功能与Spring MVC的控制器、服务和视图解析...
项目还涉及了Excel和PDF的导出功能,这对于生成报表或者数据备份非常实用。在Java中,可以使用Apache POI库来操作Excel文件,iText库来生成PDF文件。 导出Excel功能通常涉及到读取数据源,如数据库或文件,然后将...
总的来说,这个压缩包提供了一个使用Spring Boot实现的Excel到PDF转换服务的示例。开发者可以通过查看和运行源代码学习如何处理Excel文件,以及如何利用Spring Boot的特性来构建这样的转换工具。这可能涉及到Apache ...
在本项目中,JasperReport用于设计和生成报表模板,开发者可以使用iReport(版本5.6.0)这个图形化工具来设计复杂的报表布局。iReport提供了拖拽式界面,可以方便地添加表格、图表、文本等元素,同时支持SQL查询,...
Struts、Hibernate、Spring、JFreeChart以及Excel和PDF导出是Java开发中常见的技术,它们在企业级应用开发中有着广泛的应用。这些技术的整合能够构建出功能强大的Web应用程序,提供数据展示、数据处理以及文件导出等...
Struts、Hibernate、Spring、JFreeChart以及Excel和PDF导出是Java开发中的关键技术和库,它们在构建高效、可维护的企业级应用中扮演着重要角色。以下是对这些技术的详细说明: 1. **Struts**:Struts是Apache软件...
easypoi教程总结为我们提供了关于easypoi的详细使用教程,涵盖了Excel、Word、HTML、PDF等多种文档的导出和导入操作,以及与Spring MVC框架的集成。通过学习本教程,我们可以快速掌握easypoi的使用,并应用于实际...
尤其值得注意的是,SpringMVC与servlet和JSP的松耦合关系,使其能够轻松与各种视图技术集成,如Freemarker、Excel或PDF生成工具,极大地提升了Web应用的多样性和表现力。 #### Spring3.0MVC系列教程概览 该系列...
"ireport+springMVC 报表导出pdf excel"这个主题聚焦于如何利用iReport工具和SpringMVC框架来实现报表的PDF和Excel格式导出功能。下面我们将深入探讨这两个技术以及它们在报表生成中的应用。 首先,iReport是一款...