@RequestMapping(value = "/result/export")
public String export(ResultIn in,HttpServletRequest request,
HttpServletResponse response) throws Exception {
ResultXls xls=resultService.getResultXls(in);
HSSFWorkbook wb = resultService.toExcel(xls);
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
//response.setHeader("Content-disposition", "attachment;filename="+ "query" + ".xls");
response.setHeader("Content-Disposition", "attachment;filename=export.xls");
//response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) );
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();
return null;
}

//提取excel文件需要的数据
@Transactional
public ResultXls getResultXls(ResultIn in) {
String json= this.find(in);
List<Map> dataList=GsonUtils.getList(json);
ResultXls o=new ResultXls();
o.setDataList(dataList);
List<SequencesPO> sequenceList = GsonUtils.gson.fromJson(in.getSequences(),
new TypeToken<List<SequencesPO>>() {
}.getType());
o.setSequencesList(sequenceList);
return o;
}

//转换为excel文件
@Transactional
public HSSFWorkbook toExcel(ResultXls xls ) {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Campaign");
HSSFRow row = sheet.createRow((int) 0);
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
List<Map> dataList=xls.getDataList();
List<SequencesPO> sequencesList=xls.getSequencesList();
//循环列标题
String colname="";
row.createCell(0).setCellValue("指标数据");
for (int i = 1; i <= sequencesList.size(); i++) {
colname=sequencesList.get(i).getDisplayName();//title中文
row.createCell(i).setCellValue(colname);
}
//循环行
String val="";
for (int i=0;i<dataList.size();i++){
Map map=dataList.get(i);
row = sheet.createRow(i + 1);
val=(String)map.get("sj");//第一列
row.createCell(0).setCellValue(val);
//循环列
for (int j=1;j<=sequencesList.size();j++){
val=(String)map.get("c"+j);
row.createCell(j).setCellValue(val);
}
}
return wb;
}

使用SpringMvc调用POI jar导出excel的源码的更多相关文章

  1. SpringMvc 使用poi导入导出Excel

    Util类 package com.common.util; public class ExportUtil { private XSSFWorkbook wb = null; private XSS ...

  2. springMVC框架+POI组件导出Excel

    目的:访问url(http://localhost:8080/POIOutputExcel/outputexcel.do)实现excel导出,效果图如下: 文件目录(配置文件就不多说了,跟前面的随笔一 ...

  3. Java利用POI导入导出Excel中的数据

         首先谈一下今天发生的一件开心的事,本着一颗android的心我被分配到了PB组,身在曹营心在汉啊!好吧,今天要记录和分享的是Java利用POI导入导出Excel中的数据.下面POI包的下载地 ...

  4. Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

    原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之——找出Matlab内置函数中,已经大概的介绍了mat ...

  5. maven下载的jar包可以查看源码

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  6. springMVC中使用POI方式导出excel至客户端、服务器实例

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 这里的方法支持导出excel至项目所在服务器,或导 ...

  7. Java POI导入导出Excel

    1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...

  8. POI通用导出Excel数据(包括样式设计)

    前言 前一段时间我写过通用的导入Excel,前几天也写了导出pdf格式的,还有我之前搞得导出Word,我在之前的博客也都介绍了导出和导入是一个道理,无非是一个获取一个是赋值.昨天有一位同仁看了我的Ex ...

  9. POI导入导出Excel(HSSF格式,User Model方式)

    1.POI说明 Apache POI是Apache软件基金会的开源代码库, POI提供对Microsoft Office格式档案读和写的功能. POI支持的格式: HSSF - 提供读写Microso ...

随机推荐

  1. iReport使用教程

    http://www.blogjava.net/keweibo/articles/239492.html 原创出处 http://blog.163.com/liushuo216@126/blog/st ...

  2. ibatis参数传递小技巧 - 疯狂的菠菜 - ITeye技术网站

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  3. CentOS7 开源跳板机(堡垒机) Jumpserver

    开源跳板机(堡垒机)Jumpserver 环境 CentOS 7   x64       关闭 selinux  firewalld jumpserver: 172.24.0.14 testserve ...

  4. 原生js的各种方法

    原生js操作dom元素 var link = document.createElement( "link" );link.type = "image/x-icon&quo ...

  5. 改变Button文字和图片的位置

    button.imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth, 0, -labelWidth);button.titleEdgeInsets = UI ...

  6. java线程 — 创建和启动线程

    创建和启动线程,传统有两种方式: 方式1:继承Thread类: 方式2:实现Runnable接口: 线程类(java.lang.Thread):Thread类和Thread的子类才能称之为线程类.阅读 ...

  7. 功率W与dBm的对照表及关系(转)

    源:功率W与dBm的对照表及关系 功率W与dBm的对照表 dBm          Watts                          dBm            Watts  0     ...

  8. Servlet_ResponseHeader

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti ...

  9. 原生JavaScript之“淘宝轮播图”

    轮播图是我们学习原生js的必经之路 它包含很多基本知识的运用,像this的使用,DOM的操作,还有setInterval的使用和清除,浮动与定位等等,很好的考察了我们的基础知识牢不牢固, 话不多说,直 ...

  10. Python知识小点(备注)

    (1)if __name__ == '__main__': 的作用是让后面的代码只有文件被作为程序执行时才有效,作为库加载时不执行