`
温柔一刀
  • 浏览: 857434 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring 生成Excel和PDF文件

阅读更多
HTML页面并不总是向用户显示数据输出的最好方式,有时候需要生成不可改变的文件打印,PDF可能是种不错的选择。

Spring支持从数据动态生成PDF或Excel文件

下面这个简单实现的例子实现了spring输出PDF和Excel文件,为了使用Excel电子表格,你需要在你的classpath中加入poi-2.5.1.jar库文件,而对PDF文件,则需要iText.jar文件。它们都包含在Spring的主发布包中。

下面是测试项目代码:


1、控制器配置代码
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3.   
  4. <beans>  
  5.     <bean id="beanNameViewResolver"  
  6.         class="org.springframework.web.servlet.view.BeanNameViewResolver" />  
  7.   
  8.     <bean id="viewController" class="com.zhupan.spring.ViewController" />  
  9.     <bean id="urlMapping"  
  10.         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  11.         <property name="mappings">  
  12.             <props>  
  13.                 <prop key="/view*.shtml">viewControllerprop>  
  14.             props>  
  15.         property>  
  16.     bean>  
  17. beans>  

 3、用于Excel视图的视图子类化
为了在生成输出文档的过程中实现定制的行为,我们将继承合适的抽象类。对于Excel,这包括提供一个 org.springframework.web.servlet.view.document.AbstractExcelView的子类,并实现 buildExcelDocument方法。
java 代码
  1. package com.zhupan.view;   
  2.   
  3. import java.util.Date;   
  4. import java.util.Map;   
  5. import javax.servlet.http.HttpServletRequest;   
  6. import javax.servlet.http.HttpServletResponse;   
  7.   
  8. import org.apache.poi.hssf.usermodel.HSSFCell;   
  9. import org.apache.poi.hssf.usermodel.HSSFCellStyle;   
  10. import org.apache.poi.hssf.usermodel.HSSFDataFormat;   
  11. import org.apache.poi.hssf.usermodel.HSSFRow;   
  12. import org.apache.poi.hssf.usermodel.HSSFSheet;   
  13. import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
  14. import org.springframework.web.servlet.view.document.AbstractExcelView;   
  15.   
  16. public class ViewExcel extends AbstractExcelView {   
  17.   
  18.     public void buildExcelDocument(Map model, HSSFWorkbook workbook,   
  19.             HttpServletRequest request, HttpServletResponse response)   
  20.             throws Exception {   
  21.   
  22.         HSSFSheet sheet = workbook.createSheet("list");   
  23.         sheet.setDefaultColumnWidth((short12);   
  24.   
  25.         HSSFCell cell = getCell(sheet, 00);   
  26.         setText(cell, "Spring Excel test");   
  27.   
  28.         HSSFCellStyle dateStyle = workbook.createCellStyle();   
  29.         dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));   
  30.         cell = getCell(sheet, 10);   
  31.         cell.setCellValue(new Date());   
  32.         cell.setCellStyle(dateStyle);   
  33.         getCell(sheet, 20).setCellValue(458);   
  34.   
  35.         HSSFRow sheetRow = sheet.createRow(3);   
  36.         for (short i = 0; i < 10; i++) {   
  37.             sheetRow.createCell(i).setCellValue(i * 10);   
  38.         }   
  39.   
  40.     }   
  41.   
  42. }  

4、用于PDF视图的视图子类化
需要象下面一样继承org.springframework.web.servlet.view.document.AbstractPdfView,并实现buildPdfDocument()方法。
java 代码
  1. package com.zhupan.view;   
  2.   
  3. import java.util.List;   
  4. import java.util.Map;   
  5.   
  6. import javax.servlet.http.HttpServletRequest;   
  7. import javax.servlet.http.HttpServletResponse;   
  8.   
  9. import org.springframework.web.servlet.view.document.AbstractPdfView;   
  10.   
  11. import com.lowagie.text.Document;   
  12. import com.lowagie.text.Paragraph;   
  13. import com.lowagie.text.pdf.PdfWriter;   
  14.   
  15. public class ViewPDF extends AbstractPdfView {   
  16.     public void buildPdfDocument(Map model, Document document,   
  17.             PdfWriter writer, HttpServletRequest request,   
  18.             HttpServletResponse response) throws Exception {   
  19.   
  20.         List list = (List) model.get("list");   
  21.   
  22.         for (int i = 0; i < list.size(); i++)   
  23.             document.add(new Paragraph((String) list.get(i)));   
  24.     }   
  25.   
  26. }   
5、其他文件
1)控制器ViewController
java 代码
  1. package com.zhupan.spring;   
  2.   
  3. import java.util.ArrayList;   
  4. import java.util.HashMap;   
  5. import java.util.List;   
  6. import java.util.Map;   
  7.   
  8. import javax.servlet.http.HttpServletRequest;   
  9. import javax.servlet.http.HttpServletResponse;   
  10.   
  11. import org.springframework.web.servlet.ModelAndView;   
  12. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;   
  13.   
  14. import com.zhupan.view.ViewExcel;   
  15. import com.zhupan.view.ViewPDF;   
  16.   
  17. public class ViewController extends MultiActionController {   
  18.   
  19.     public ModelAndView viewPDF(HttpServletRequest request,   
  20.             HttpServletResponse response) throws Exception {   
  21.         List list = new ArrayList();   
  22.         Map model = new HashMap();   
  23.         list.add("test1");   
  24.         list.add("test2");   
  25.         model.put("list", list);   
  26.         ViewPDF viewPDF = new ViewPDF();   
  27.         return new ModelAndView(viewPDF, model);   
  28.     }   
  29.   
  30.     public ModelAndView viewExcel(HttpServletRequest request,   
  31.             HttpServletResponse response) throws Exception {   
  32.         List list = new ArrayList();   
  33.         Map model = new HashMap();   
  34.         list.add("test1");   
  35.         list.add("test2");   
  36.         model.put("list", list);   
  37.         ViewExcel viewExcel = new ViewExcel();   
  38.         return new ModelAndView(viewExcel, model);   
  39.     }   
  40. }  
2)web.xml
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  5.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  6.   
  7.     <display-name>springPDFTestdisplay-name>  
  8.     <servlet>  
  9.         <servlet-name>springPDFTestservlet-name>  
  10.         <servlet-class>  
  11.             org.springframework.web.servlet.DispatcherServlet   
  12.         servlet-class>  
  13.         <load-on-startup>1load-on-startup>  
  14.     servlet>  
  15.   
  16.     <servlet-mapping>  
  17.         <servlet-name>springPDFTestservlet-name>  
  18.         <url-pattern>*.shtmlurl-pattern>  
  19.     servlet-mapping>  
  20.   
  21.     <welcome-file-list>  
  22.         <welcome-file>index.jspwelcome-file>  
  23.     welcome-file-list>  
  24.   
  25. web-app>  

3)index.jsp

<href="viewPDF.shtml">PDF视图打开 a>
<br>
<href="viewExcel.shtml">Excel视图打开a>
分享到:
评论
4 楼 温柔一刀 2006-10-23  
里面有几个依赖.jar文件
打包太大了
所以就把代码全部贴出来了
3 楼 imlinf 2006-10-23  
怎么不提打包的源代码下载
2 楼 imlinf 2006-10-23  
<!--

</table>
1 楼 javaway 2006-10-11  
<p>thanks</p>

相关推荐

    用spring MVC 生成Excel和PDF.docx

    为了使用Excel电子表格,你需要在你的classpath中加入‘poi’库文件,而对PDF文件,则需要iText.jar文件。它们都包含在Spring的主发布包中。另外经过测试还需要加入包spring- beans.jar,spring-context.jar,spring...

    SpringMVC:生成Excel和PDF

    NULL 博文链接:https://liuzidong.iteye.com/blog/1071823

    SpringBoot整合poi实现Excel文件的导入和导出.pdf

    SpringBoot整合poi实现Excel文件的导入和导出,其中单独分装出一个ExcelFormatUtil工具类来实现对单元格数据格式进行判断。

    完美整合框架包(Spring+SpringMVC+mybitas+文件上传下载+邮件+短信支持+生成PDF、Excel)

    Spring+SpringMVC+mybitas+文件上传下载+邮件+短信支持+生成PDF、Excel 你需要的包都在这里了

    根据文件模板实现预览、生成word、pdf、excel(后端-项目)

    1. 文件预览、生成word、pdf、excel的流程,解决方案 2.一些设计模式的应用,写出来的代码扩展性和维护性更健壮

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

    Spring 2.0 开发参考手册

    14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成...

    Spring中文帮助文档

    14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成...

    Spring API

    14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成...

    spring chm文档

    14.6. 文档视图(PDF/Excel) 14.6.1. 简介 14.6.2. 配置和安装 14.7. JasperReports 14.7.1. 依赖的资源 14.7.2. 配置 14.7.3. 构造ModelAndView 14.7.4. 使用子报表 14.7.5. 配置Exporter的参数 15. 集成...

    Spring攻略(第二版 中文高清版).part1

    8.13 创建Excel和PDF视图 344 8.13.1 问题 344 8.13.2 解决方案 345 8.13.3 工作原理 345 8.14 小结 351 第9章 Spring REST 352 9.1 用Spring发布一个REST服务 352 9.1.1 问题 352 9.1.2 解决方案...

    Spring SpringMVC 简单整合

    Spring SpringMVC 简单整合(初学者参考) demo项目对应地址说明 :...ViewResolver:通过扩展视图解析器,支持更多类型的视图解析,例如:jsp、freemarker、pdf、excel等。

    Spring攻略(第二版 中文高清版).part2

    8.13 创建Excel和PDF视图 344 8.13.1 问题 344 8.13.2 解决方案 345 8.13.3 工作原理 345 8.14 小结 351 第9章 Spring REST 352 9.1 用Spring发布一个REST服务 352 9.1.1 问题 352 9.1.2 解决方案...

    Struts2+IText动态导出PDF示例源码

    程序使用Struts2(SSH即Struts2+Hibernate+Spring)+POI+MySQL实现Excel动态数据导入和导出,程序源码文件附带运行说明

    【源码】mysql 版本 spring 4.2.5 (SSM).rar

    5 SQL 编辑器, 支持复杂sql语句(写入语句,查询语句),生成报表,可以导出excel 6 websocket 真正及时通讯技术,支持好友,群组,发图片文件,离线消息,聊天记录 即时聊天、及时站内信并声音提醒、实时在线管理...

    javaeye热点阅读

    1.13 Excel Report 一个小巧实用基于java实现的Excel报表生成工具 1.14 Spring(十四) Spring和Hibernate的结合--声明式事务管理1.15 Apache Click 框架初探1.16 Spring AOP 详解 1.17 2 Spring2.0用注解实现事务...

    SpringBoot-Web-Mvc-Security:以Spring方式构建企业Java应用程序

    搜索和排序数据使用select2 ajax远程数据的分页结果发送带有附件的电子邮件模板多种语言的Web应用程序生成PDF和Excel文件使用Ajax以一种形式上传数据和文件建立和运行mvn packagejava -jar SpringBoot-0.0.1-...

    SpringBoot---Invoice-System:使用SpringBoot 2,Spring JPA,Spring Security和Thymeleaf构建的简单发票管理系统

    使用SpringBoot 2,Spring JPA,Spring Security,Thymeleaf,jQuery,Bootstrap 4和FontsAwesome构建的简单发票管理系统。 演示版 您可以在用户名admin中访问此Web应用程序的实时演示。 密码:12345 屏幕截图 运行 ...

    Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业级报表后台管理系统

    table(数据列表展示)+ Bootstrap-Export(各种报表导出SQL,Excel,pdf等)框架,整合Echars,各类图表的展示(折线图,饼图,直方图等),使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据...

Global site tag (gtag.js) - Google Analytics