springmvc+excel多表头模板下载功能
2016-08-23 16:46
330 查看
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
controller层
//
String path= servicen层调用downloadAgentlistData();
//path="D:/tomcat/8080/webapps/ROOT/WEB-INF/classes/temp/xxxxxx.xls";
String filepath =path;
String fileName = "xx"+ DateUtil.date2StrShort(new Date()).replace("-", "")+".xls";
return getResponseEntity(filepath, fileName);
/**
* 生成响应内容
* @param filepath
* @param fileName
* @return
*/
private ResponseEntity<byte[]> getResponseEntity(String filepath,String fileName){
HttpHeaders headers = new HttpHeaders();
byte[] bytes = null;
if(!"".equals(filepath)){
bytes = FileUtils.File2byte(filepath);
}
try {
headers.setContentDispositionFormData("attachment", new String(fileName.getBytes("utf-8"),"ISO8859-1"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
} catch (UnsupportedEncodingException e) {
e.getMessage();
}
return new ResponseEntity<byte[]>(bytes, headers, HttpStatus.CREATED);
}
service方法
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
private final Log logger = LogFactory.getLog(getClass());
public String downloadAgentlistData() throws Exception {
//导出推广计划相关数据
String tempPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
String targetFilePath = tempPath+"/temp/AdExtendDownload.xls";
//打开模板
Workbook wb = null;
WritableWorkbook wwb=null;
try {
File targetFiles = new File(targetFilePath);
File file=new File(tempPath + "//temp//AdExtendDownload.xls");
wb = Workbook.getWorkbook(file);
wwb = Workbook.createWorkbook(targetFiles, wb);
WritableSheet wws0 = wwb.getSheet(0);
wws0.addCell(new Label(1,0,""));
wws0.addCell(new Label(1,1,""));
wws0.addCell(new Label(1,3,""));
wws0.addCell(new Label(2,3,""));
wws0.addCell(new Label(3,3,""));
wws0.addCell(new Label(4,3,""));
wws0.addCell(new Label(5,3,""));
wws0.addCell(new Label(6,3,""));
if(null!=orderList&&orderList.size()>0)
{
for(int i=0;i<orderList.size();i++){
AdOrder order = orderList.get(i);
wws0.addCell(new Label(0,5+i,""));
wws0.addCell(new Label(1,5+i,""));
}
}
wwb.write();
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("下载平台汇总数据出错!");
} finally{
if(wb!=null){
wb.close();
}
if(wwb!=null){
try {
wwb.close();
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("下载平台汇总数据出错!");
}
}
}
return targetFilePath;
}
导入jxl.jar 包
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
</list>
</property>
</bean>
controller层
//
String path= servicen层调用downloadAgentlistData();
//path="D:/tomcat/8080/webapps/ROOT/WEB-INF/classes/temp/xxxxxx.xls";
String filepath =path;
String fileName = "xx"+ DateUtil.date2StrShort(new Date()).replace("-", "")+".xls";
return getResponseEntity(filepath, fileName);
/**
* 生成响应内容
* @param filepath
* @param fileName
* @return
*/
private ResponseEntity<byte[]> getResponseEntity(String filepath,String fileName){
HttpHeaders headers = new HttpHeaders();
byte[] bytes = null;
if(!"".equals(filepath)){
bytes = FileUtils.File2byte(filepath);
}
try {
headers.setContentDispositionFormData("attachment", new String(fileName.getBytes("utf-8"),"ISO8859-1"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
} catch (UnsupportedEncodingException e) {
e.getMessage();
}
return new ResponseEntity<byte[]>(bytes, headers, HttpStatus.CREATED);
}
service方法
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
private final Log logger = LogFactory.getLog(getClass());
public String downloadAgentlistData() throws Exception {
//导出推广计划相关数据
String tempPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
String targetFilePath = tempPath+"/temp/AdExtendDownload.xls";
//打开模板
Workbook wb = null;
WritableWorkbook wwb=null;
try {
File targetFiles = new File(targetFilePath);
File file=new File(tempPath + "//temp//AdExtendDownload.xls");
wb = Workbook.getWorkbook(file);
wwb = Workbook.createWorkbook(targetFiles, wb);
WritableSheet wws0 = wwb.getSheet(0);
wws0.addCell(new Label(1,0,""));
wws0.addCell(new Label(1,1,""));
wws0.addCell(new Label(1,3,""));
wws0.addCell(new Label(2,3,""));
wws0.addCell(new Label(3,3,""));
wws0.addCell(new Label(4,3,""));
wws0.addCell(new Label(5,3,""));
wws0.addCell(new Label(6,3,""));
if(null!=orderList&&orderList.size()>0)
{
for(int i=0;i<orderList.size();i++){
AdOrder order = orderList.get(i);
wws0.addCell(new Label(0,5+i,""));
wws0.addCell(new Label(1,5+i,""));
}
}
wwb.write();
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("下载平台汇总数据出错!");
} finally{
if(wb!=null){
wb.close();
}
if(wwb!=null){
try {
wwb.close();
} catch (Exception e) {
logger.error(e.getMessage());
throw new Exception("下载平台汇总数据出错!");
}
}
}
return targetFilePath;
}
导入jxl.jar 包
相关文章推荐
- SpringMVC+POI下载文件模板和导出Excel
- Easyui+Spring Mvc导出Excel:支持按模板样式导出、合并表头、合并单元格、多sheet
- Springboot/SpringMVC+POI 实现Excel导出功能(点击下载方式实现)
- SpringMVC+POI 实现Excel按模板方式简单导出功能
- SpringMVC/SpringBoot使用easypoi实现Excel文件导入导出功能实现
- Asp.net MVC实现生成Excel并下载功能
- asp.net mvc导出excel文件先保存到服务器某个目录,然后再导出到客户端供客户下载功能的实现
- NHibernate+spring.net+jquery打造UI控件库(mvc+webform两种实现) combox,shadow控件的初步实现(包括键盘,过滤功能)(附代码下载)
- asp.net下载Excel模板和导入导出Excel功能
- Spring+SpringMvc的Excel导出功能
- SpringMVC+Ajax实现文件批量上传和下载功能实例代码
- spring+springmvc+hibernate利用poi实现导出Excel功能
- springmvc+mybatis下载项目自带模板
- java 关于excel下载 struts2 servlet springmvc
- spring从模板创建mvc例子排错
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务(转载)
- InstallShield 2012 Spring新功能试用(8): Suite/Advanced UI 和 Advanced UI工程支持自动检测升级和下载
- MVC 实现下载功能如此简单
- 公共代码帮助类:下载页面、导出Excel(不带表头)、导出Execl(带表头)、 导出CSV、实现对IList到DataSet的转换
- ExtJS+SpringMVC文件上传与下载