Spring MVC and Excel file via AbstractJExcelView
来源:互联网 发布:做淘宝什么最赚钱 编辑:程序博客网 时间:2024/06/07 08:49
Spring MVC comes with AbstractJExcelView
class to export data to Excel file via JExcelAPI
library. In this tutorial, it show the use of AbstractJExcelView
class in Spring MVC application to export data to Excel file for download.
1. JExcelAPI
Get the JExcelAPI
library.
<!-- JExcelAPI library --> <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.3</version> </dependency>
2. Controller
A controller class, generate dummy data for demonstration, and get the request parameter to determine which view to return. If the request parameter is equal to “EXCEL”, then return an Excel view (AbstractJExcelView
).
File : RevenueReportController.java
package com.mkyong.common.controller;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.bind.ServletRequestUtils;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.AbstractController;public class RevenueReportController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { String output = ServletRequestUtils.getStringParameter(request, "output"); //dummy data Map<String,String> revenueData = new HashMap<String,String>(); revenueData.put("Jan-2010", "$100,000,000"); revenueData.put("Feb-2010", "$110,000,000"); revenueData.put("Mar-2010", "$130,000,000"); revenueData.put("Apr-2010", "$140,000,000"); revenueData.put("May-2010", "$200,000,000"); if(output ==null || "".equals(output)){ //return normal view return new ModelAndView("RevenueSummary","revenueData",revenueData); }else if("EXCEL".equals(output.toUpperCase())){ //return excel view return new ModelAndView("ExcelRevenueSummary","revenueData",revenueData); }else{ //return normal view return new ModelAndView("RevenueSummary","revenueData",revenueData); } }}
3. AbstractJExcelView
Create an Excel view by extends the AbstractJExcelView
class, and override the buildExcelDocument()
method to populate the data to Excel file. The AbstractJExcelView
is using the JExcelAPI
to create the Excel file detail.
File : ExcelRevenueReportView.java
package com.mkyong.common.view;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import org.springframework.web.servlet.view.document.AbstractJExcelView;public class ExcelRevenueReportView extends AbstractJExcelView{ @Override protected void buildExcelDocument(Map model, WritableWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String,String> revenueData = (Map<String,String>) model.get("revenueData"); WritableSheet sheet = workbook.createSheet("Revenue Report", 0); sheet.addCell(new Label(0, 0, "Month")); sheet.addCell(new Label(1, 0, "Revenue")); int rowNum = 1; for (Map.Entry<String, String> entry : revenueData.entrySet()) { //create the row data sheet.addCell(new Label(0, rowNum, entry.getKey())); sheet.addCell(new Label(1, rowNum, entry.getValue())); rowNum++; } }}
4. Spring Configuration
Create a XmlViewResolver
for the Excel view.
<beans ...> <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" /> <bean class="com.mkyong.common.controller.RevenueReportController" /> <bean class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="location"> <value>/WEB-INF/spring-excel-views.xml</value> </property> </bean></beans>
File : spring-excel-views.xml
<beans ..."> <bean id="ExcelRevenueSummary" class="com.mkyong.common.view.ExcelRevenueReportView"> </bean></beans>
5. Demo
URL : http://localhost:8080/SpringMVC/revenuereport.htm?output=excel
It generates an Excel file for user to download.
- Spring MVC and Excel file via AbstractJExcelView
- Spring MVC and Excel file via AbstractJExcelView
- Spring MVC and Excel file via AbstractExcelView
- Spring MVC and PDF file via AbstractPdfView
- 利用AbstractJExcelView生成Excel的过程
- Spring MVC + Mybatis+MySQL File Upload and Download Example
- spring mvc 导出excel
- spring MVC 导出excel
- spring MVC 导出excel
- spring MVC 导出excel
- spring MVC 导出excel
- Spring MVC 生成EXCEL
- spring MVC 导出excel
- spring MVC 导出excel
- spring mvc 导出Excel
- spring mvc导入excel
- Spring MVC 导出EXCEL
- MySQL Import and Export (.sql file) via PhpMyAdmin
- linux常用命令(25):linux文件属性详解
- Android之SD卡上的文件读取
- lua5.2.3源码阅读笔记
- C语言参考手册(第5版)
- 项目1-函数传值的三种方式
- Spring MVC and Excel file via AbstractJExcelView
- 【第3周 项目2 - 建设“顺序表”算法库】
- Lucene 索引
- 个人笔记---JNI2-调试
- C语言函数库
- 字符串类String的设计
- 面试题总结1-50
- Android之SD卡文件浏览器实现
- 仿360工具栏