为了账号安全,请及时绑定邮箱和手机立即绑定

pio导excel问题,导出数据不对!!!!

pio导excel问题,导出数据不对!!!!

啊丶木木 2016-08-31 09:52:22
我用pio做数据导出表格的功能.但是导出的只是默认显示的前十条数据.查询之后导出的仍然是默认显示的前十条数据.不是查询出来的数据,请问是什么原因!!!!下面是我导出方法的代码/**  * 导出消费记录  *   * @param params  * @param inParams  * @return  */ @RequestMapping(value = "/exportcustomerOrderList") public void exportcustomerOrderList(Map<String, Object> params, @RequestParam Map<String, Object> inParams,HttpServletResponse response) { PageBean page = new PageBean(); try { page.setPageNum(inParams.get("pageNum") == null ? 1 : Integer .parseInt(inParams.get("pageNum").toString())); String customerName = inParams.get("customerName") == null ? "" : inParams.get("customerName").toString(); String recordName = inParams.get("recordName") == null ? "" : inParams.get("recordName").toString(); String orderSN = inParams.get("orderSN") == null ? "" : inParams .get("orderSN").toString(); String orderStatus = inParams.get("orderStatus") == null ? "" : inParams.get("orderStatus").toString(); String recordAccount = inParams.get("recordAccount") == null ? "" : inParams.get("recordAccount").toString(); String billStatus = inParams.get("billStatus") == null ? "" : inParams.get("billStatus").toString(); // ************************时间戳新建功能********************************* String startTime = inParams.get("startTime") == null ? "" : inParams.get("startTime").toString(); System.out.println("startTime++++++++++++++++++++" + startTime); String endTime = inParams.get("endTime") == null ? "" : inParams .get("endTime").toString(); System.out.println("endTime++++++++++++++++++++" + endTime); // ******************************************************************* Map<String, Object> param = new HashMap<String, Object>(); if (!"".equals(billStatus)) { param.put("billStatus", billStatus); } if (!"".equals(recordAccount)) { param.put("recordAccount", recordAccount); } if (!customerName.equals("")) { param.put("customerName", customerName); } if (!recordName.equals("")) { param.put("recordName", recordName); } if (!orderSN.equals("")) { param.put("orderSN", orderSN); } if (!orderStatus.equals("")) { param.put("orderStatus", orderStatus); } // ************************时间戳新建功能********************************* if (!startTime.equals("")) { param.put("startTime", startTime); } if (!endTime.equals("")) { param.put("endTime", endTime); } // ******************************************************************* if (null != inParams.get("paid")) { param.put("paid", true); } List<Order> list = orderService .pagedQueryByParamsForOrderManagement(param, page); params.put("statuslist", Arrays.asList(Order.Status.values())); if (null != inParams.get("nopaystatus")) { params.put("nopaystatus", true); } params.put("customerOrderList", list); params.put("page", page); params.put("customerName", customerName); params.put("recordName", recordName); if (!"".equals(recordAccount)) { params.put("recordName", recordUserService.get(Integer.parseInt(recordAccount)) .getUserName()); } params.put("orderSN", orderSN); params.put("orderStatus", orderStatus); List<Map<String,String>> dataList=new ArrayList<Map<String,String>>(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for(Order order:list){ Map<String, String> model=new HashMap<String, String>(); model.put("orderSn", order.getOrderSn()); model.put("createdTime", sdf.format(order.getCreatedTime())); //订单时间长度和结算时间 model.put("budgetMinutes", order.minutesInfo(order.getBudgetMinutes())+""); model.put("billMinutes", order.minutesInfo(order.getBillMinutes())+""); model.put("customerName", order.getCustomer().getUserName()); model.put("statusLabel", order.getStatusLabel()); dataList.add(model); } ExcelIOUtil excelIOUtil=new ExcelIOUtil(); excelIOUtil.exportcustomerOrderList(response, dataList); } catch (Exception e) { e.printStackTrace(); } } //导出消费表格 public  void exportcustomerOrderList(HttpServletResponse response, List<Map<String,String>> list) { try { String fileName = "消费表格.xls"; fileName = new String(fileName.getBytes("GBK"), "iso8859-1"); response.reset(); response.setHeader("Content-Disposition", "attachment;filename=" + fileName);//指定要输出的文件名 response.setContentType("application/vnd.ms-excel"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); OutputStream output = response.getOutputStream(); BufferedOutputStream bufferedOutPut = new BufferedOutputStream(output); System.out.println("__________________________________________"); //工作表名 String worksheet = "sheet1"; HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(worksheet); //创建列标头LIST List<String> titleList = new ArrayList<String>(); //titleList.add("ID");     //visId   //name titleList.add("订单编号"); titleList.add("创建时间"); titleList.add("预计时长"); titleList.add("计算时长"); titleList.add("客户"); titleList.add("处理状态"); // 创建单元格样式 HSSFCellStyle cellStyleTitle = wb.createCellStyle(); // 指定单元格水平居中对齐 cellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格垂直居中对齐 cellStyleTitle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 指定当单元格内容显示不下时自动换行 cellStyleTitle.setWrapText(true); //------------------------------------------------------------------ HSSFCellStyle cellStyle = wb.createCellStyle(); // 指定单元格居中对齐 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格垂直居中对齐 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 指定当单元格内容显示不下时自动换行 cellStyle.setWrapText(true); //------------------------------------------------------------------ // 设置单元格字体 HSSFFont font = wb.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setFontName("宋体"); font.setFontHeight((short) 200); cellStyleTitle.setFont(font); //================================================================== //定义第一行 HSSFRow row = sheet.createRow(0); HSSFCell cell = null; for (int i = 0; i < titleList.size(); i++) { cell = row.createCell((short)i); cell.setCellStyle(cellStyleTitle); cell.setCellValue(new HSSFRichTextString(titleList.get(i))); } int rowNumber = 1; for (Map<String, String> map : list) { row = sheet.createRow(rowNumber); cell.setCellStyle(cellStyle); int num=0; cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("orderSn"))); cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("createdTime"))); cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("budgetMinutes"))); cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("billMinutes"))); cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("customerName"))); cell = row.createCell((short)num++); cell.setCellValue(new HSSFRichTextString(map.get("statusLabel"))); rowNumber++; } wb.write(bufferedOutPut); bufferedOutPut.flush(); bufferedOutPut.close(); wb.removeSheetAt(0); } catch (IOException e) { e.printStackTrace(); } finally { list.clear(); } }其他就不一一列举了,求大神告知症状所在!!!!!
查看完整描述

3 回答

?
啊丶木木

TA贡献121条经验 获得超119个赞

还有只到10条数据,是因为查询用的是分页查询和显示,.在导出的方法里重新写个查询条件,把分页查询去掉就可以了

查看完整回答
反对 回复 2016-08-31
?
啊丶木木

TA贡献121条经验 获得超119个赞

问题解决了./关键在于前段获取的form表单值传递给了查询,而我的导出是另外的input标签.没有form传值.解决方法就是把值传给导出的方法.可以用ajax方法传入/或者在jsp界面写个方法,拼字段,把值传给后台导出方法

//导出
 function exportModel(){
	  var temp = [],
	 	tepString = '';
   $.each($('.form-inline input,.form-inline select'),function(k,v){
	 	temp.push(v.value);
	});
   tepString = '?userName='+temp[0]+'&type'+temp[1];
   console.log(temp);
   console.log(tepString);
  window.location.href="<%=request.getContextPath()%>/market/exportcustomerList"+tepString;
           }

类似为这种

查看完整回答
反对 回复 2016-08-31
?
嗨子

TA贡献11条经验 获得超2个赞

你是不是就查询10条数据呢

查看完整回答
反对 回复 2016-08-31
  • 啊丶木木
    啊丶木木
    肯定是都查询出来了.分页显示的...现在主要的是导出的是默认的数据.而不是我查询之后出来的数据.
  • 3 回答
  • 0 关注
  • 2408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信