数据导出成excel格式

页面代码

//根据选择的查询条件导出相应数据
	function exportData(){
		var isDel = 0;
		if ($('#yesOrNot').combobox('getText') == '已删除') {
			isDel = 1;
		}else if ($('#yesOrNot').combobox('getText') == '未删除') {
			isDel = 0;
		}else if($('#yesOrNot').combobox('getText') == 'All'){
			isDel = 10;
		}
		
		var startTime =  $("#startDate").val();
		var endTime = $("#endDate").val();
		var id = $("input[name='Id']").val();
		var activity_type_id = $("input[name='activeTypeId']").val();
		
		
		var elemIF = document.createElement("iframe");   
		elemIF.src = "${pageContext.request.contextPath}/visit/exportVisitPlan?is_deleted="+isDel+"&startTime="+startTime+
				"&endTime="+endTime+"&id="+id+"&activity_type_id="+activity_type_id;  
		elemIF.style.display = "none";  
		document.body.appendChild(elemIF)
	}
后台代码

要导入这个包import   org.apache.poi.xssf.streaming.SXSSFWorkbook;

@RequestMapping(value = "/exportVisitPlan", method = RequestMethod.GET)
	@ResponseBody
	public void exportVisitPlan(PageBean visitPlan, HttpServletRequest request, HttpServletResponse response) {
		long count = visitPlanService.getCount();
		visitPlan.setPage(1);
		visitPlan.setRows((int) count);
		Map<String, Object> visitPlanList = visitPlanService.getVisitPlanList(visitPlan);
		@SuppressWarnings("unchecked")
		List<Plan> vpList = (List<Plan>) visitPlanList.get("rows");
		Date date = new Date();
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
		String sdate = sf.format(date);
		String fileName = "visitPlan_" + sdate + ".xlsx";
		// 设置导出Excel报表的导出形式
		response.setContentType("application/vnd.ms-excel,charset=utf-8");
		response.setHeader("Content-disposition", "attachment;filename=" + fileName);
		// 获取输出流
		OutputStream os = null;
		try {
			os = response.getOutputStream();
		} catch (IOException e1) {
			logger.error("IOException: " + e1);
			throw new RestException(e1.getMessage());
		}
<span style="white-space:pre">		</span>//#前数据库中表字段,后是导出excel列名
		String[] headers = new String[] { "id#计划id", "activity_plan_date#计划活动日期 ",......};

		SXSSFWorkbook workbook = new SXSSFWorkbook();
		try {
			Sheet sheet = workbook.createSheet();

			Row rowHead = sheet.createRow(0);
			Cell cellHead = null;
			if (headers != null && headers.length > 0) {
				for (int i = 0; i < headers.length; i++) {
					cellHead = rowHead.createCell(i);
					cellHead.setCellValue(headers[i].split("#")[1]);
				}
			}
			Row row = null;
			Cell cellInfo = null;
			Method method = null;
			Object objValue = null;
			for (int j = 0; j < vpList.size(); j++) {
				row = sheet.createRow(j + 1);
				Object obj = vpList.get(j);
				for (int m = 0; m < headers.length; m++) {
					cellInfo = row.createCell(m);
					String[] str = headers[m].split("#");
					String first = str[0].substring(0, 1);
					method = obj.getClass().getMethod("get" + first.toUpperCase() + str[0].substring(1));
					objValue = method.invoke(obj);
					if (method.getReturnType().getName() == "java.util.Date") {
						if (objValue != null) {

							SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
							String format = sdf.format((Date) objValue);
							String strValue = objValue == null ? "" : format;
							cellInfo.setCellType(Cell.CELL_TYPE_STRING);
							cellInfo.setCellValue(strValue);
						}
					} else {
						cellInfo.setCellValue(objValue == null ? ""
								: objValue.toString().equals("null") ? ""
										: objValue.toString().replaceAll("(\r\n|\r|\n|\n\r)", ""));
					}
				}
			}
			workbook.write(os);
			os.close();
			workbook.close();
		} catch (FileNotFoundException e) {
			logger.error("FileNotFoundException: " + e);
			throw new RestException(e.getMessage());
		} catch (IOException e) {
			logger.error("IOException: " + e);
			throw new RestException(e.getMessage());
		} catch (SecurityException e) {
			logger.error("SecurityException: " + e);
			throw new RestException(e.getMessage());
		} catch (IllegalArgumentException e) {
			logger.error("IllegalArgumentException: " + e);
			throw new RestException(e.getMessage());
		} catch (NoSuchMethodException e) {
			logger.error("NoSuchMethodException: " + e);
			throw new RestException(e.getMessage());
		} catch (IllegalAccessException e) {
			logger.error("IllegalAccessException: " + e);
			throw new RestException(e.getMessage());
		} catch (InvocationTargetException e) {
			logger.error("InvocationTargetException: " + e);
			throw new RestException(e.getMessage());
		}
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值