`
温柔一刀
  • 浏览: 860577 次
  • 性别: 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

    这个例子展示了如何使用 Spring MVC 和相关的库(Apache POI 和 iText)来动态生成 Excel 和 PDF 文件,提供给用户下载。整个流程涉及到 Spring MVC 的配置、控制器的编写以及与第三方库的集成,实现了从数据到视图...

    SpringMVC:生成Excel和PDF

    这篇博文“SpringMVC:生成Excel和PDF”主要探讨了如何在SpringMVC应用中创建并导出两种常见文档格式——Excel和PDF。 Excel是Microsoft Office套件中的一个电子表格程序,而PDF(Portable Document Format)则是一...

    word、excel、ppt转pdf,spring boot小demo

    本项目是一个基于Spring Boot框架实现的实用工具,用于将Microsoft Office的三种常见文件格式——Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)转换为PDF格式。这个小Demo提供了完整的功能,无需任何水印,...

    Spring 实现excel及pdf导出表格示例

    在Spring框架中,实现Excel和PDF表格的导出是一项常见的需求,尤其在数据报表和数据分析场景中。本文将详细介绍如何利用Spring MVC来完成这个功能。 首先,我们关注Excel的导出。在提供的代码片段中,可以看到使用...

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

    这两个依赖分别用于处理低级别(如HSSF)和高级别(如XSSF,适用于Excel 2007及以上版本)的Excel文件。 接下来,我们创建一个名为`ExcelFormatUtil`的工具类,这个类主要负责对单元格的数据格式进行判断,并返回...

    springboot实现根据指定pdf、word模板文件填充值到文件里面,生成对应的文件

    在Spring Boot中,我们可以创建一个服务,该服务接受Word模板文件和数据,然后使用POI API将数据填入模板中的占位符,最后生成一个新的Word文档。 对于PDF文件的处理,我们可以使用iText库。iText是一个强大的PDF...

    struts2+hibernate+spring+jfreechart+导出excel+导出pdf完美整合.zip

    在Java中,可以使用Apache POI库来操作Excel文件,iText库来生成PDF文件。 导出Excel功能通常涉及到读取数据源,如数据库或文件,然后将数据填充到Excel工作表中。而导出PDF则需要将HTML、文本或图像转换成PDF格式...

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

    标题中的“完美整合框架包”指的是一个集合了多个核心Java技术的综合应用,这些技术包括Spring、SpringMVC、MyBatis以及相关的辅助功能,如文件上传下载、邮件服务、短信支持、PDF和Excel的生成。这个框架整合的目的...

    Excel2Pdf源码

    Excel提供了丰富的表格和数据分析工具,而PDF则常用于保证文件在不同设备上的显示一致性。 另一个标签 "Excel PDF" 表明了转换的目标格式。PDF(Portable Document Format)是一种通用的文件格式,能够保留原始文档...

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

    生成Word、PDF和Excel文件则涉及不同的技术栈。对于Word,我们可以利用`python-docx`(Python)或Apache POI(Java)等库,它们允许我们操作Word文档的各个元素,如段落、表格、图片等。PDF生成通常有多种选择,如...

    easypoi导入导出excel表格.pdf

    - **easypoi-base**: 导入导出包,是核心功能所在,它提供了数据和Excel文件互相转换的核心实现。 - **easypoi-web**: 这个包提供了与Spring MVC整合的视图工具,简化了在Spring Web环境下进行导出的操作,但非必须...

    struts,hibernate,spring,jfreechart,导出excel,导出pdf 完美整合

    Struts、Hibernate、Spring、JFreeChart以及Excel和PDF导出是Java开发中常见的技术,它们在企业级应用开发中有着广泛的应用。这些技术的整合能够构建出功能强大的Web应用程序,提供数据展示、数据处理以及文件导出等...

    struts、 hibernate、 spring、 jfreechart、 导出excel、 导出pdf 完美整合

    通过它,开发者可以创建新的工作簿,添加工作表,设置单元格值,样式,公式等,实现从程序中动态生成Excel报表。 6. **导出PDF**:PDF(Portable Document Format)是一种通用的文件格式,常用于保存文档的原始布局...

    OpenPDF是用于创建和编辑PDF文件的开源Java库

    7. **PDF文档操作**:除了创建,OpenPDF还能读取和修改已存在的PDF文件,比如添加、删除、移动页面,或者合并多个PDF文件。 8. **事件处理**:开发者可以通过注册监听器来处理PDF生成过程中的各种事件,如页眉页脚...

    java导出Excel文件.pdf

    在本文档中,我们将深入探讨如何使用Java技术栈实现导出Excel文件的功能...以上知识点涵盖了从Java后端文件生成、数据处理到前端页面触发和下载文件的整个过程,展现了在Java技术栈中实现Excel文件导出功能的技术细节。

    springboot-批量生成二维码

    这个项目结合了Spring Boot的Web开发能力、Java的文件处理和二维码生成技术,以及前端的交互设计,是一个综合性的实践案例,有助于开发者提升在这些领域的技能。通过学习和实践,开发者可以更好地理解如何将这些技术...

    POI word docx 动态生成.pdf

    标题中提到的“POI word docx 动态生成.pdf”涉及到Apache POI库和Word文档(.docx格式)的动态生成。Apache POI是一个Java库,用于读取和写入Microsoft Office格式的文件,尤其在处理Excel和Word文件时非常有用。...

Global site tag (gtag.js) - Google Analytics