亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用Spring MVC生成Excel文檔

系統 1827 0

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文檔


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 97在线视频免费观看费观看 | 视频一区国产精戏刘婷 | 久久综合伊人 | 四虎影视免费观看免费观看 | 午夜欧美精品久久久久久久久 | 亚洲天天做日日做天天看2018 | 欧美激情在线视频播放 | 久久国产精品久久精品国产 | 卡通动漫精选国产欧美 | 国产一级在线免费观看 | 全黄大全大色全免费大片 | 天天天天鲁天天拍一拍 | 亚洲一区二区三区四 | 国内精品久久久久影院6 | 曰本还a大片免费无播放器 曰本黄色录像 | 日韩视频亚洲 | 国产夫妻久久线观看 | 奇米影视第四色在线观看 | 欧美日韩在线精品成人综合网 | 日韩欧美毛片免费看播放 | 日日干日日射 | 免费的黄色网 | 欧美精品一区二区三区在线 | 亚洲免费久久 | 综合在线亚洲 | 国产免费精彩视频 | chinese国产人妖视频网站 | 久草在线视频免费播放 | 欧美在线色 | 久久国产乱子伦免费精品 | 一道本免费视频 | 综合网久久 | 亚洲国产精品成人综合久久久 | 欧美性色福利视频在线观看 | 五月色婷婷六月噜噜 | 欧美24video| 亚洲人成一区二区不卡 | 爱爱视频欧美 | 美妇乱人伦性 | 大陆60老妇xxxxhd | 色婷婷综合久久久久中文 |