js:

 function initBatchExport(url,sub_key,current_sub_num){
var btn_id="#btn_char"+current_sub_num;
if(Number(current_sub_num)==){
btn_id="#btn_char";
}
// 查询条件
//var paramObj=new Object();
//var result_Data ={};
month_value=$("#month_value").val();
dim_key = sub_key;
type = "量";
var exportUrl=basePath+'/amount/initBatchExport.do?month_value='+month_value+'&dim_key='+dim_key+'&type='+type+'&current_sub_num='+current_sub_num;
for (var i = ; i <=Number(current_sub_num); i++) {
var parent_key = "parent_dim_"+(i);
exportUrl+='&'+parent_key+'='+$("#"+parent_key).val();
}
$(btn_id).on("click",function(){ // var excelurl ="<%=basePath%>/hfx/unwantExport.action?impId="+impId; location.href=exportUrl;
});
}

controller:

 @RequestMapping(value = "/initBatchExport", method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public void initBatchExport(Locale locale, Model model,HttpServletRequest request,HttpServletResponse response){
ResultMap data =ResultMap.defaultResultMap(); //new HashMap<String,Object>();
//Map<String,String> param = RequestUtils.getParamsMap(request);
Map<String,String> param =new HashMap<String,String>();
Map map = request.getParameterMap();
String current_sub_num = request.getParameter("current_sub_num");
String month_value = request.getParameter("month_value");
String dim_key = request.getParameter("dim_key");
String type = request.getParameter("type");
for (int i = ; i <=Integer.parseInt(current_sub_num); i++) {
String parent_key = "parent_dim_"+(i);
param.put(parent_key, request.getParameter(parent_key));
}
param.put("current_sub_num", current_sub_num);
param.put("month_value", month_value);
param.put("dim_key", dim_key);
param.put("type", type);
//需导出的数据
List<ZdResult8BrandD> list = amonutService.initJqGrid(param);
//初始化导出Excel
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("Sheet1");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow();
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 HSSFCell cell = row.createCell();
//'账期', '地市', '品牌','机型', '价格段', '客户','分类客户', 'subtype','value'
cell.setCellValue("账期");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("地市");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("品牌");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("机型");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("价格段");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("客户");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("分类客户");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("子类");
cell.setCellStyle(style);
cell = row.createCell();
cell.setCellValue("值");
cell.setCellStyle(style); // 第五步,写入实体数据
for (int i = ; i < list.size(); i++){
row = sheet.createRow(i + );
ZdResult8BrandD zdResult = list.get(i);
// 第四步,创建单元格,并设置值
row.createCell().setCellValue(zdResult.getStatDay());
row.createCell().setCellValue(zdResult.getAreaName());
row.createCell().setCellValue(zdResult.getBrandName());
row.createCell().setCellValue(zdResult.getSpec());
row.createCell().setCellValue(zdResult.getPriceRange());
row.createCell().setCellValue(zdResult.getCustName());
row.createCell().setCellValue(zdResult.getCustStage());
row.createCell().setCellValue(zdResult.getSubType());
row.createCell().setCellValue(zdResult.getValue());
// cell = row.createCell(3);
// cell.setCellValue(new SimpleDateFormat("yyyy-MM-dd").format(stu.getTime()));
} //第六步,输出Excel文件
try {
OutputStream output=response.getOutputStream();
response.reset();
SimpleDateFormat df = new SimpleDateFormat("yyyy_MM_dd HHmmss");//设置日期格式
String fileName = dim_key+df.format(new Date());// new Date()为获取当前系统时间
response.setHeader("Content-disposition", "attachment; filename="+fileName+".xls");
response.setContentType("application/msexcel"); wb.write(output);
output.flush();
} catch (IOException e) {
e.printStackTrace();
} //return resultMap;
}

poi 导出Excel java代码的更多相关文章

  1. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  2. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  3. 重构:以Java POI 导出EXCEL为例2

    前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...

  4. Java之POI导出Excel(一):单sheet

    相信在大部分的web项目中都会有导出导入Excel的需求,今天我们就来看看如何用Java代码去实现 用POI导出Excel表格. 一.pom引用 pom文件中,添加以下依赖 查看代码  <!-- ...

  5. java中使用poi导出excel表格数据并且可以手动修改导出路径

    在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下

  6. java解决poi导出excel文字水印,导出excel不可操作问题

    首先需求是用户提出导出excel数据需使用水印备注其用途: 其实就是在导出excel的同时带有自定义文字水印的导出. 那么我们首先想到的肯定是以一个什么样的思路去解决该问题,首先查找poi导出exce ...

  7. POI导出EXCEL经典实现

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  8. 关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结

    poi导出excel最常用的是第一种方式HSSFWorkbook,不过这种方式数据量大的话会产生内存溢出问题,SXSSFWorkbook是一种大数据量导出格式,csv是另一种excel导出的一种轻快的 ...

  9. 关于poi导出excel方式HSSFWorkbook(xls).XSSFWorkbook(xlsx).SXSSFWorkbook.csv的总结

    1.HSSFWorkbook(xls) import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermo ...

随机推荐

  1. jmeter学习笔记---循环控制器计数器函数助手

    循环控制器与计数器,以及函数助手需要配合使用,实现循环 循环控制器的“循环次数”输入最大循环次数的参数 计数器:除输入最大值外,还需要输入“引用名称”,供后续请求使用 请求中,如果需要实现循环,需要借 ...

  2. Django(十七):静态文件、中间件

    一.静态文件 参考:https://www.cnblogs.com/jiajiaba/p/10584329.html 参考:https://docs.djangoproject.com/zh-hans ...

  3. matlab安装matconvnet出错总结

    在安装过程中出现两种错误: mex -settup C 出错 mex -setup C 之后, vl_complilenn出错 matconv库需要autoNN和mcnExtraLayers两个库支持 ...

  4. JuJu团队1月7号工作汇报

    JuJu团队1月7号工作汇报 JuJu 周六周日放假,所以空了两天~   Scrum 团队成员 今日工作 剩余任务 困难 飞飞 完成data process readme部分 实现三维Dense 无 ...

  5. (转)浅谈 Linux 内核无线子系统

    前言 Linux 内核是如何实现无线网络接口呢?数据包是通过怎样的方式被发送和接收呢? 刚开始工作接触 Linux 无线网络时,我曾迷失在浩瀚的基础代码中,寻找具有介绍性的材料来回答如上面提到的那些高 ...

  6. Windows驱动开发-设备读写方式

    设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区.而你的驱动程序将使用这个系统缓冲区工作.I/O ...

  7. Rolling Update【转】

    滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...

  8. mongdb 4.x admin密码忘记,如何 重建admin用户

    在mongo db中,或mongo db cluser中,如果admin密码忘记了,必须按下面的步骤来做.思路为注释掉security认证部分,重启mongo server, 重建admin用户,再打 ...

  9. ROS学习笔记3-基础课程之文件系统向导

    准备工作需要使用如下命令安装ros的教程: $ sudo apt-get install ros-<distro>-ros-tutorials 其中,distro为所用ros的发行版本,该 ...

  10. Ajax发送PUT/DELETE请求时出现错误的原因及解决方案

    本文讲什么? 大家应该都知道.在HTTP中,规定了很多种请求方式,包括POST,PUT,GET,DELETE等.每一种方式都有这种方式的独特的用处,根据英文名称,我们能够很清楚的知道DELETE方法的 ...