Spring MVC and Excel file via AbstractJExcelView
2015-09-15 09:19
477 查看
Spring MVC comes with
1.
Get the
File :
3.
Create an Excel view by extends the
File :
File :
It generates an Excel file for user to download.
AbstractJExcelViewclass to export data to Excel file via
JExcelAPIlibrary. In this tutorial, it show the use of
AbstractJExcelViewclass in Spring MVC application to export data to Excel file for download.
1. JExcelAPI
Get the JExcelAPIlibrary.
<!-- 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 AbstractJExcelViewclass, and override the
buildExcelDocument()method to populate the data to Excel file. The
AbstractJExcelViewis using the
JExcelAPIto 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 aXmlViewResolverfor 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=excelIt generates an Excel file for user to download.
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 使用Python生成Excel格式的图片
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Excel 曝出 Power Query 安全漏洞,1.2 亿用户易受远程 DDE 攻击
- VBA将excel数据表生成JSON文件
- excel vba 限制工作表的滚动区域代码
- excel vba 高亮显示当前行代码
- SQL 导入导出Excel数据的语句
- 文本、Excel、Access数据导入SQL Server2000的方法
- C#导出数据到Excel文件的方法
- Vbscript生成Excel报表的常用操作总结
- C#实现导入CSV文件到Excel工作簿的方法
- C#基于NPOI生成具有精确列宽行高的Excel文件的方法
- 总提示[Microsoft][ODBC Excel Driver] 数值字段溢出官方解决方法
- C#将Sql数据保存到Excel文件中的方法
- VC6.0实现读取Excel数据的方法
- 把excel表格里的数据导入sql数据库的两种方法
- access dbase excel foxpro 数据库浏览器V3.1版 下载