`
esffor
  • 浏览: 1367370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Spring MVC生成Excel文档

阅读更多

Spring不仅支持jsp,velocity,freemarker,同时可以将数据生成到Excel,PDF等非html文档

首先,我们编写控制器,返回逻辑名“ListStudentUseExcel

package Action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;

public class TestExcelController extends AbstractCommandController ...{



    
protected ModelAndView handle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, BindException arg3) throws Exception ...{
        
return null;
    }


    
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception ...{
        
return new ModelAndView("ListStudentUseExcel","","");
    }


}

 配置文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 
<property name="mappings">
   
<props>
       
<prop key="/excel.mvc">TestExcelController</prop>
   
</props>
 
</property>
</bean>


<bean id="ListStudentUseExcel" class="Action.ListStudentUseExcel"></bean>

<bean id="beanNameViewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/> 

<bean id="TestExcelController" class="Action.TestExcelController"/>


</beans>

 

由于上述配置文件采用了beanNameViewResolver的当时,所以,我们要编写一个合controller返回逻辑名相同的
ViewClass---ListStudentUseExcel,代码如下:

 

package Action;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Student;

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;

public class ListStudentUseExcel extends AbstractExcelView ...{

    
protected  void buildExcelDocument(Map model,
            HSSFWorkbook workbook,
            HttpServletRequest request,
            HttpServletResponse response)
throws Exception...{

        
          
//设置response方式,使执行此controller时候自动出现下载页面,而非直接使用excel打开
          response.setContentType("APPLICATION/OCTET-STREAM"); 
          response.setHeader(
"Content-Disposition"
          
"attachment; filename="" + "excel.xls" + """); 

        
//构造数据
        Student stu1=new Student("gaoxiang1","male1","20060101",1);
        Student stu2
=new Student("gaoxiang2","male2","20060102",2);
        Student stu3
=new Student("gaoxiang3","male3","20060103",3);
        Student stu4
=new Student("gaoxiang4","male4","20060104",4);
        Student stu5
=new Student("gaoxiang5","male5","20060105",5);
        ArrayList stuList
=new ArrayList();
        stuList.add(stu1);
        stuList.add(stu2);
        stuList.add(stu3);
        stuList.add(stu4);
        stuList.add(stu5);
        
        
//产生Excel表头
        HSSFSheet sheet=workbook.createSheet("studentList");
        HSSFRow header
=sheet.createRow(0); //第0行
        
//产生标题列
        header.createCell((short)0).setCellValue("name");
        header.createCell((
short)1).setCellValue("sex");
        header.createCell((
short)2).setCellValue("date");
        header.createCell((
short)3).setCellValue("count");
        HSSFCellStyle cellStyle
=workbook.createCellStyle();
        cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(
"mm/dd/yyyy"));
        
        
//填充数据
        int rowNum=1;
        
for (Iterator iter = stuList.iterator(); iter.hasNext();) ...{
            Student element 
= (Student) iter.next();
            HSSFRow row
=sheet.createRow(rowNum++);
            row.createCell((
short)0).setCellValue(element.getName().toString());
            row.createCell((
short)1).setCellValue(element.getSex().toString());
            row.createCell((
short)2).setCellValue(element.getDate().toString());
            row.getCell((
short)2).setCellStyle(cellStyle);
            row.createCell((
short)3).setCellValue(element.getCount());
        }

        
        
//列总和计算
        HSSFRow row=sheet.createRow(rowNum);
        row.createCell((
short)0).setCellValue("TOTAL:");
        String formual
="SUM(D2:D"+rowNum+")"//D2到D[rowNum]单元格起(count数据)
        row.createCell((short)3).setCellFormula(formual);
        
    }


}

测试页面:/exlce/ListStudentUseExcel.jsp

 

<%...@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding
="GB18030"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>

<input type="button" onclick="javascript:window.location.href='<%=request.getContextPath() %>/excel.mvc'" value="download excel"></input>

</body>
</html>

 

运行ListStudentUseExcel.jsp,点击下载按钮,程序运行结果及生成的excel如下:

 



分享到:
评论

相关推荐

    用spring MVC 生成Excel和PDF.docx

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

    spring mvc excel common view

    这个类的作用是处理并生成Excel文件。在接收到Controller(比如“ScoreManageController.java”)的处理结果后,ExcelView4Common会根据数据生成对应的Excel内容,并将其响应给客户端。 “ScoreManageController....

    spring MVC 导出excel

    在Spring MVC项目中,我们可以使用Apache POI API来创建Excel工作簿、工作表,并填充数据,最后将生成的文件以HTTP响应的方式发送给客户端下载。 以下是一些关键步骤: 1. **引入依赖**:首先,在项目中添加Apache...

    Jett+Spring MVC实现Excel导出

    这个方法接收请求,准备数据,然后使用Jett来生成Excel文件。以下是一个简单的示例: ```java @GetMapping("/exportExcel") public void exportExcel(HttpServletResponse response) throws IOException { // 准备...

    Jxls+Spring MVC实现Excel导出

    5. 使用Jxls的API处理模板,填充数据,生成Excel工作簿。 6. 将生成的Excel文件通过HTTP响应返回给客户端。 掌握这些步骤和技巧,开发者就能有效地在Spring MVC应用中实现Excel导出功能,满足用户的数据导出需求。

    spring mvc框架依赖全面jar

    `jxl.jar` 提供了读写Excel文件的能力,如果你的应用需要生成或读取Excel报告,这个库会非常有用。 `commons-collections-3.1.jar` 是Apache Commons Collections库,提供了丰富的集合操作和算法,增强了Java集合...

    基于 _Excel_ 的web的报表项目,使用spring mvc

    这通常涉及使用Apache POI库或者其他类似的Java库,这些库允许程序操作Microsoft Excel文档,包括创建工作表、填充数据、格式化单元格等。 3. **Spring Data JPA**:Spring Data JPA是Spring框架的一部分,它为Java...

    spring mvc easyui-POI导出excel封装源码

    在Spring MVC的后端,开发者可以利用POI库来生成Excel文件,这包括设置工作簿、工作表、行和单元格的数据。例如,从数据库查询到的数据可以被转换为Excel格式,然后通过HTTP响应返回给前端。 在EasyUI的前端,可以...

    Spring3MVC and POI

    标题 "Spring3MVC and POI" 涉及到两个关键...这个示例展示了如何在Spring 3 MVC的Controller中利用POI生成Excel报表,然后通过HTTP响应发送给客户端下载。这样的功能在数据分析、报表生成和数据导出等场景下非常实用。

    基于Spring MVC的web框架 1.1.11

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    页面表格数据生成excel文件下载

    在这个"页面表格数据生成excel文件下载"的例子中,我们可以看到两个关键的Java文件:DownController.java和ExcelUtil.java。下面我们将详细探讨这两个文件可能实现的功能和涉及的技术。 首先,`DownController.java...

    Spring MVC+Spring+Mybatis+poi+xml全部jar包

    结合这三个框架和POI库,开发者可以构建一个完整的后端系统,处理HTTP请求,通过Spring MVC进行业务逻辑控制,利用Spring管理依赖,通过Mybatis执行数据库操作,同时使用POI处理Excel数据,如报表生成或数据导入导出...

    Spring3 MVC with Japer Report Demo

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

    jxls利用模板生成excel文件

    **Jxls:基于模板生成Excel文件的神器** 在IT行业中,数据处理和报告生成是常见的需求,特别是当需要将大量数据导出为易于查看和分析的格式时,Excel表格成为了首选。而`jxls`正是一个Java库,它提供了一种高效、...

    SpringMVC POI Excel 生成导出

    "SpringMVC POI Excel 生成导出" 这个标题指的是使用 SpringMVC 框架和 POI 库生成 Excel 文件,并将其导出。这个标题包含了三个关键词:SpringMVC、POI 和 Excel,它们是我们今天要探讨的主题。 描述解释 在这个...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 mysql版本_spring3.0

    导出 导入 excel 文件 2 导出word文件 3. IO 流上传下载文件 4. 群发邮件,可以发html、纯文本格式,可以发给任意邮箱(实现批量发送广告邮件) 5. 群发or单独 发送短信,支持两种第三方短信商接口 6. spring aop ...

    SpringMVC:生成Excel和PDF

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

    springmvc4利用AbstractXlsxStreamingView,根据模板导出excel

    在这个类中,你需要重写`buildExcelDocument`方法,该方法负责生成Excel文档内容。 4. **设置模型数据** 在控制器方法中,你需要构建好要导出的数据模型,然后将模型放入ModelAndView对象中,设置视图名为自定义...

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

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

Global site tag (gtag.js) - Google Analytics