`
zy77612
  • 浏览: 284214 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

生成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>
 
 

分享到:
评论

相关推荐

    SpringMVC:生成Excel和PDF

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

    LABVIEW 生成PDF报表练习

    通过这个"生成PDF报表练习(LV2018)",你可以逐步学习和掌握LABVIEW中的PDF生成技巧,进一步提升你的程序设计能力。不断实践和探索,你会发现LABVIEW不仅是一个强大的编程工具,还是一个创造无限可能的平台。

    Aspose生成EXCEL转PDF

    在本文中,我们将探讨如何使用Aspose.Cells构建一个EXCEL报表,并详细介绍如何使用Aspose生成EXCEL文件并转换为PDF格式。 创建Workbook和Worksheet 在使用Aspose.Cells之前,首先需要创建一个Workbook对象,然后在...

    JAVA生成PDF报表.pdf

    JAVA生成PDF报表.pdf 在企业的信息系统中,报表处理一直占据着重要的作用。本文将介绍一种生成PDF报表的...通过iText生成PDF报表,可以非常方便地解决B/S系统的报表处理问题,提高了报表处理的灵活性和自动化程度。

    边干边学LabVIEW报表生成.zip_LABVIEW报表_excel报表_labview_labview excel_labv

    在本资料“边干边学LabVIEW报表生成.zip”中,重点讲述了如何利用LabVIEW生成Excel和Word报表,以展示和分析实验或测量数据。以下是对这些知识点的详细说明: 1. **LabVIEW的数据采集与处理**:LabVIEW能够方便地...

    Excel.rar_labview报表生成_labview生成excel_labview生成报表_报表 labview_报表生成

    “LabVIEW生成报表”则是一个更宽泛的概念,它不仅包括生成Excel报表,还可能涵盖PDF、CSV等其他格式的报表。在LabVIEW中,你可以设计自定义的界面,然后将数据显示在这些界面上,形成报表。通过布局控件和数据绑定...

    java导出excel pdf 报表

    在Java开发中,导出Excel和PDF报表是常见的需求,特别是在数据分析、数据展示以及报告生成等场景下。本文将深入探讨如何使用Java实现这一功能,包括处理Excel和PDF的库、基本操作以及优化技巧。 首先,Java中常用的...

    mfc生成excel-pdf图表

    在本话题中,我们将深入探讨如何使用MFC来生成包含Excel数据和图表的PDF文档。 首先,我们需要明白MFC本身并不直接支持生成PDF文档,因此我们需要借助第三方库或插件。描述中提到的“需要下载一个excel生成pdf的...

    用Excel VBA方法实现报表自动生成.pdf

    在打开文件后,代码选中了工作表中的"C2:AC25"区域,这可能包含了需要转换为PDF报表的数据。 然后,代码将当前窗口切换到另一个名为"1Excel.xls"的Excel工作簿,并激活该工作簿。同时,取消工作簿的保护状态(如果...

    java生成excle和pdf

    Java生成Excel和PDF是两种常见的数据导出技术,在企业级应用中广泛使用,尤其是在报表、数据分析和文件交互场景。这两个技术分别基于不同的库,对于Java开发者来说,掌握它们的使用方法是十分重要的。 1. Java生成...

    java生成excel图表

    "Java生成Excel图表" Java生成Excel图表是使用Java语言来生成Excel图表的过程。Excel图表是指使用Excel软件生成的图表,例如柱状图、...但是,使用Java生成Excel图表可以提高工作效率,提高数据分析和报表生成的质量。

    excel模版生成pdf

    - 财务报告:企业经常使用Excel模板制作财务报表,然后导出为PDF分发给股东、投资者或管理层,确保数据的准确性和格式的一致性。 - 表单和合同:定制的Excel表单可以转换为PDF,用于电子签名和无纸化办公,降低...

    C#版本Itextsharp根据模板导出pdf报表

    通过上述步骤,你就可以使用C#和Itextsharp库根据模板生成PDF报表了。在实践中,你可能会遇到更多具体问题,如特殊字符处理、中文支持等,但Itextsharp库通常都有相应的解决方案。在开发过程中,查阅官方文档和社区...

    EXCEL报表生成器

    8. **数据导出与分享**:生成的报表可以保存为Excel文件,方便进一步分析,也可以直接导出为PDF或其他格式,便于打印和共享。 9. **集成与扩展**:有些报表生成器能够与企业系统如ERP、CRM等集成,实现数据的无缝...

    帆软报表导出各种格式(excel/word/pdf等)

    在本主题中,我们将探讨如何使用帆软报表导出各种格式,包括Excel、Word和PDF等,以便满足不同场景下的需求。 首先,我们要知道帆软报表的导出功能依赖于两个核心的Java类库:fr-server-6.5.jar和fr-third-6.5.jar...

    EXCEL全套教程.pdf

    EXCEL全套教程.pdf文件涵盖了Excel的基础知识、数据编辑和处理、数据分析和报表生成、Excel中的宏和VBA编程、数据导入和导出、Excel中的图表和报表、Excel中的其他高级功能、Excel中的打印和输出、Excel中的高级技巧...

    .net6 WebApi Excel转PDF并下载PDF文件

    在.NET 6框架中,开发WebApi应用时,有时我们需要处理Excel文件并将它们转换为PDF格式,以便用户能够方便地下载和查看。本教程将详细讲解如何使用C#语言实现这个功能。 首先,我们需要引入一些必要的库来支持Excel...

    报表导出excel word pdf html

    它们允许你创建新的PDF文档,插入文本、图像,甚至复杂的表格和图形,以便于生成专业级别的报表。 4. HTML:HTML (HyperText Markup Language) 是网页的基础,易于阅读和分享。在Java中,可以使用JSP (JavaServer ...

Global site tag (gtag.js) - Google Analytics