`
zzc1684
  • 浏览: 1223289 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

用spring MVC 生成Excel和PDF

阅读更多

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 生成Excel和PDF.docx

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

    Spring MVC 学习笔记 十二 PDF/Excel格式输出

    对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...

    SpringMVC:生成Excel和PDF

    在Spring MVC框架中,生成Excel和PDF文件是常见的需求,特别是在数据导出、报表生成或者文档分享场景下。本文将详细讲解如何利用Spring MVC结合开源库实现Excel和PDF的生成。 首先,我们要引入两个关键的库:Apache...

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

    总结来说,Spring MVC结合Apache POI和iText库,可以方便地实现在Web应用中导出Excel和PDF表格的功能。这在数据展示、报告生成等方面非常有用,使得用户可以方便地下载和查看数据。通过自定义视图类和模型数据,可以...

    Spring3 MVC with Japer Report Demo

    在IT领域,Spring MVC作为Spring框架的一部分,是用于构建Web应用程序的强大工具,而JasperReport则是一款功能丰富的报表生成库,支持多种格式,如PDF、HTML、Excel等。本示例将探讨如何在Spring3 MVC项目中集成...

    spring MVC Web应用中集成Jasper报表工具

    在Spring MVC Web应用程序中集成Jasper报表工具是一个常见的需求,以提供动态生成和展示各种复杂数据的报表。JasperReports是一款强大的开源报表库,能够帮助开发者创建、设计和展示多种格式的报表,如PDF、HTML、...

    easypoi导入导出excel表格.pdf

    在使用easypoi库进行Java项目的Excel表格导入导出时,开发者需要重视其依赖的引入,理解各注解的用途,以及能够解决使用过程中可能出现的类找不到或者依赖冲突等错误。另外,合理使用文档资源,跟进库的版本更新,也...

    spring-mvc-jasperReports

    Spring MVC是Spring框架的一部分,用于构建Web应用程序,而JasperReports是一个开源报告工具,用于生成静态和动态的业务报告。在这个项目中,开发者可能将JasperReports的功能与Spring MVC的控制器、服务和视图解析...

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

    项目还涉及了Excel和PDF的导出功能,这对于生成报表或者数据备份非常实用。在Java中,可以使用Apache POI库来操作Excel文件,iText库来生成PDF文件。 导出Excel功能通常涉及到读取数据源,如数据库或文件,然后将...

    Excel2Pdf源码

    总的来说,这个压缩包提供了一个使用Spring Boot实现的Excel到PDF转换服务的示例。开发者可以通过查看和运行源代码学习如何处理Excel文件,以及如何利用Spring Boot的特性来构建这样的转换工具。这可能涉及到Apache ...

    SpringMVC+jspereport,实现报表分页查看、文件(pdf、excel、word)导出,以及html展示和调用浏览器打印功能实现打印

    在本项目中,JasperReport用于设计和生成报表模板,开发者可以使用iReport(版本5.6.0)这个图形化工具来设计复杂的报表布局。iReport提供了拖拽式界面,可以方便地添加表格、图表、文本等元素,同时支持SQL查询,...

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

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

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

    Struts、Hibernate、Spring、JFreeChart以及Excel和PDF导出是Java开发中的关键技术和库,它们在构建高效、可维护的企业级应用中扮演着重要角色。以下是对这些技术的详细说明: 1. **Struts**:Struts是Apache软件...

    easypoi教程总结

    easypoi教程总结为我们提供了关于easypoi的详细使用教程,涵盖了Excel、Word、HTML、PDF等多种文档的导出和导入操作,以及与Spring MVC框架的集成。通过学习本教程,我们可以快速掌握easypoi的使用,并应用于实际...

    spring3.0MVC中文教程

    尤其值得注意的是,SpringMVC与servlet和JSP的松耦合关系,使其能够轻松与各种视图技术集成,如Freemarker、Excel或PDF生成工具,极大地提升了Web应用的多样性和表现力。 #### Spring3.0MVC系列教程概览 该系列...

    ireport+springMVC 报表导出pdf excel

    "ireport+springMVC 报表导出pdf excel"这个主题聚焦于如何利用iReport工具和SpringMVC框架来实现报表的PDF和Excel格式导出功能。下面我们将深入探讨这两个技术以及它们在报表生成中的应用。 首先,iReport是一款...

Global site tag (gtag.js) - Google Analytics