jxl导出excel(合并行、合并列、单元格居中、单元格固定宽度、字体加粗、分页签)

本文介绍了一个用于导出工单数据的功能实现方法,包括根据工单类型进行分组查询、导出Excel文件的过程及异常处理等。该功能支持导出不同类型的工单数据及其相关统计信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public ActionForward performExport(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException {

		String exportType = request.getParameter("exportType");
		if ("check".equals(exportType)) {
			request.setAttribute("check", "y");
		}
		String tableName = "工单数据表";
		String excelFileName = new String(("工单数据表" + DateUtil.getSysDateString() + ".xls").getBytes("GBK"), "iso-8859-1");
		List list = null;
		
		PosOrderBO poBO = new PosOrderBO();
		//2016-06-24修改成根据工单类型分页签导出
		//String sql = getSelectSQL5(request, (PubForm) form);
		String sql = getWorkOrderGroupByWorkOrderTypeSQL(request,(PubForm)form)[0];
		String sqlNumSql = getWorkOrderGroupByWorkOrderTypeSQL(request,(PubForm)form)[1];
		
		// 导出所有
		try {
			list =poBO.list(sql);
			List xjNumList = poBO.list(sqlNumSql);
			response.setContentType("application/vnd.ms-excel");
			response.setHeader("Content_Length", "10000000");
			if (request.getHeader("User-Agent").indexOf("MSIE   5.5") != -1) {
				/** MS IE5.5 */
				response.setHeader("Content-disposition", "filename=\"" + excelFileName + "\"");
			} else {
				/** 非MS IE5.5 */
				response.setHeader("Content-disposition", "attachment;filename=\"" + excelFileName + "\"");
			}
			
//			ExcelFileUtil.writePosOrderExcel3(list, response.getOutputStream(), tableName);
			ExcelFileUtil.writePosOrderExcel4(list,xjNumList, response.getOutputStream(), tableName);
		} catch (Exception ex) {
			ex.printStackTrace();
			response.setStatus(HttpServletResponse.SC_OK);
		} finally {
			if (response != null && response.getOutputStream() != null) {
				response.getOutputStream().close();
			}
		}
		return null;
	}public String[] getWorkOrderGroupByWorkOrderTypeSQL(HttpServletRequest request, ActionForm form){


		Manager manager = (Manager) request.getSession().getAttribute(SystemConst.MANAGER);
		ShopRole role = manager.getRoleObject();
		String roleName =role.getName();
		String type = request.getParameter("type");
		String queryDate = request.getParameter("date");
		String bussOrgId = "";
		if(roleName.equals("片区组长")){
			List list = StoreHelper.getOrgsByManagerId(manager.getId());
		 	if(list != null && list.size() > 0){
	    	for(int i=0;i='" + firstDate + "' and po.orderTime <='" + lastDate + "'" );
					xjSql.append(" and  po.orderTime >='" + firstDate + "' and po.orderTime <='" + lastDate + "'" );
				}else if(type.equals("1")){//日
					firstDate =queryDate;
					lastDate =queryDate;
					sql.append(" and  po.orderTime like'" + firstDate + "%'" ); 
					xjSql.append(" and  po.orderTime like'" + firstDate + "%'" ); 
				}
				String resDate = "";
				if(lastDate != null && lastDate.length() >= 7){
					resDate = lastDate.substring(0,4) + "年" + lastDate.substring(5,7) + "月";
				}else{
					resDate = lastDate;
				}
				request.setAttribute("queryDate", queryDate);
				request.setAttribute("queryType", type);
				request.setAttribute("resDate", resDate);
			}
			String backType = request.getParameter("bean.orderType");
			String storeNo = request.getParameter("bean.storeNo");
			String terminalNo = request.getParameter("bean.terminalNo");
			String searchExecOper = request.getParameter("bean.execOper");
			List managerIds = PosManagerHelpler.getManagerIdsByName(searchExecOper);
			
			String backDeviceSn = request.getParameter("bean.deviceSn");
			String backStatus = request.getParameter("bean.orderStatus");
			String startDate = request.getParameter("startDate");
			String endDate = request.getParameter("endDate");
			String deviceStatus = request.getParameter("deviceStatus");
			String deviceType = request.getParameter("deviceType");
			
			
			request.setAttribute("bussOrgId", bussOrgId);
			request.setAttribute("bussManagerName", bussManagerName);
			request.setAttribute("searchExecOper", searchExecOper);
			request.setAttribute("backDeviceSn", backDeviceSn);
			request.setAttribute("deviceStatus", deviceStatus);
			request.setAttribute("deviceType", deviceType);
			if(!StringUtil.isEmpty(deviceType)){
				sql.append(" and pd.deviceType ='"+deviceType+"'");
				xjSql.append(" and pd.deviceType ='"+deviceType+"'");
			}
			if(!StringUtil.isEmpty(deviceStatus)){
				sql.append(" and pd.status ='"+deviceStatus+"'");
				xjSql.append(" and pd.status ='"+deviceStatus+"'");
			}
			if(!StringUtil.isEmpty(bussOrgId)){
				if("9".equals(bussOrgId)){//选择常州,就总计所有片区
					sql.append("  ");
					xjSql.append("  ");
				}else if("33".equals(bussOrgId)){//选择其他区,就统计
					sql.append(" AND (s.bussOrgId='9' or s.bussOrgId='33') ");
					xjSql.append(" AND (s.bussOrgId='9' or s.bussOrgId='33') ");
				}else{
					sql.append(" AND s.bussOrgId='"+bussOrgId+"'");
					xjSql.append(" AND s.bussOrgId='"+bussOrgId+"'");
				}
			}
			if(!StringUtil.isEmpty(bussManagerName)){
				sql.append(" and po.execOperNo like '%"+bussManagerName+"%'");
				xjSql.append(" and po.execOperNo like '%"+bussManagerName+"%'");
			}
			
			if (!StringUtil.isEmpty(storeNo)) {
				sql.append(" and s.storeNo like '%" + storeNo + "%'");
				xjSql.append(" and s.storeNo like '%" + storeNo + "%'");
			}
			if (!StringUtil.isEmpty(terminalNo)) {
				sql.append(" and po.terminalNo like '%" + terminalNo + "%'");
				xjSql.append(" and po.terminalNo like '%" + terminalNo + "%'");
			}
			if(!StringUtil.isEmpty(searchExecOper)){
				if(managerIds != null && managerIds.size()>0){
					sql.append(" and (");
					xjSql.append(" and (");
					for(int i = 0;i= '" + FormatHelper.parseTimestamp(startDate, true) + "'");
				xjSql.append(" and po.orderTime >= '" + FormatHelper.parseTimestamp(startDate, true) + "'");
			}
			if (!StringUtil.isEmpty(endDate)) {
				sql.append(" and po.orderTime <= '" + FormatHelper.parseTimestamp(endDate, false) + "'");
				xjSql.append(" and po.orderTime <= '" + FormatHelper.parseTimestamp(endDate, false) + "'");
			}
			if (!StringUtil.isEmpty(backType)) {
				if(backType.contains("-")){
					String [] str =backType.split("-");
					sql.append(" and po.orderType  like '%").append(str[0]).append("%' and po.workType like '%").append(str[1]).append("%'");
					xjSql.append(" and po.orderType  like '%").append(str[0]).append("%' and po.workType like '%").append(str[1]).append("%'");
				}else{
					sql.append(" and po.orderType like '%").append(backType).append( "%'");
					xjSql.append(" and po.orderType like '%").append(backType).append( "%'");
				}
			}else{
				sql.append(" and (po.orderType like '%10%' or po.orderType like '%11%' or po.orderType like '%14%' or po.orderType like '%15%') ");
				xjSql.append(" and (po.orderType like '%10%' or po.orderType like '%11%' or po.orderType like '%14%' or po.orderType like '%15%') ");
			}
			sql.append("and po.isDelete = '1' order by po.orderTime desc ");
			xjSql.append("and po.isDelete = '1' order by po.orderTime desc ");


			String [] sqlArr = {sql.toString(),xjSql.toString()};
			
			return sqlArr;
	
	}public static void writePosOrderExcel4(List result,List xjNumList, OutputStream os,
			String tableName) throws Exception {
		// excel标题的格式
		WritableCellFormat titleFormat = new WritableCellFormat(
				new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD,
						false, UnderlineStyle.NO_UNDERLINE,
						jxl.format.Colour.BLACK));
//		titleFormat.setBackground(Colour.SKY_BLUE); 
		//设置边框;  
		titleFormat.setBorder(Border.ALL, BorderLineStyle.MEDIUM);  
		//设置自动换行;  
//		titleFormat.setWrap(true);  
		//设置文字居中对齐方式;  
		titleFormat.setAlignment(Alignment.CENTRE);  
		//设置垂直居中;  
		titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
		WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10,
				WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
				jxl.format.Colour.BLACK);
		
		// excedl数据的格式
		WritableCellFormat detFormat = new WritableCellFormat(detFont);
		//设置边框;  
		detFormat.setBorder(Border.ALL, BorderLineStyle.THIN);  
		//设置自动换行;  
		detFormat.setWrap(true);  
//        //设置文字居中对齐方式;  
//		detFormat.setAlignment(Alignment.CENTRE);  
		//设置垂直居中;  
		detFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
		//水平居中
		detFormat.setAlignment(Alignment.CENTRE);
		
		WritableWorkbook workbook = Workbook.createWorkbook(os);
//		WritableSheet sheet = workbook.createSheet(
//				tableName + DateUtil.getSysDateString(), 0);
		
		//跟进
		WritableSheet sheetGJ = workbook.createSheet(
				"跟进", 0);
		//移机
		WritableSheet sheetYJ = workbook.createSheet(
				"移机", 0);
		//切机
		WritableSheet sheetQJ = workbook.createSheet(
				"切机", 0);
		//程序升级
		WritableSheet sheetSJ = workbook.createSheet(
				"升级", 0);
		//换装
		WritableSheet sheetHZ = workbook.createSheet(
				"换装", 0);
		//新装
		WritableSheet sheetXZ = workbook.createSheet(
				"新装", 0);
		//巡检
		WritableSheet sheetXJ = workbook.createSheet(
				"巡检", 0);
		
		
		Formatter formatter = new Formatter();
		
		//巡检工单详细数据
		HashMap mapXJ =null;
		if(xjNumList!=null && xjNumList.size()>0){
			mapXJ=(HashMap) xjNumList.get(0);
		}
		try {
			Label lableXJ = null;
			Label lableXZ = null;
			Label lableHZ = null;
			Label lableSJ = null;
			Label lableQJ = null;
			Label lableYJ = null;
			Label lableGJ = null;
			
			lableXJ = new Label(0,0,"状态",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,0,"细分状态",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,0,"数量",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(3,0,"总数",titleFormat);
			sheetXJ.addCell(lableXJ);
			
			//复合表格
			sheetXJ.mergeCells(0, 1, 0, 3);
			lableXJ = new Label(0,1,"正常",titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXJ.mergeCells(3, 1, 3, 3);
			lableXJ = new Label(3,1,mapXJ==null?"0":(mapXJ.get("zcZongShu")==null?"0":mapXJ.get("zcZongShu").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			
			lableXJ = new Label(1,1,"正常适用",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,1,mapXJ==null?"0":(mapXJ.get("zcsy")==null?"0":mapXJ.get("zcsy").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,2,"机具故障",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,2,mapXJ==null?"0":(mapXJ.get("jjgz")==null?"0":mapXJ.get("jjgz").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,3,"线路故障",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,3,mapXJ==null?"0":(mapXJ.get("xlgz")==null?"0":mapXJ.get("xlgz").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			
			sheetXJ.mergeCells(0, 4, 0, 18);
			lableXJ = new Label(0,4,"异常",titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXJ.mergeCells(3, 4, 3, 18);
			lableXJ = new Label(3,4,mapXJ==null?"0":(mapXJ.get("ycZongShu")==null?"0":mapXJ.get("ycZongShu").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			
			lableXJ = new Label(1,4,"不使用",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,4,mapXJ==null?"0":(mapXJ.get("bsy")==null?"0":mapXJ.get("bsy").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,5,"常连海",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,5,mapXJ==null?"0":(mapXJ.get("clh")==null?"0":mapXJ.get("clh").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,6,"电子银行部",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,6,mapXJ==null?"0":(mapXJ.get("dzyhb")==null?"0":mapXJ.get("dzyhb").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,7,"外区",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,7,mapXJ==null?"0":(mapXJ.get("wq")==null?"0":mapXJ.get("wq").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,8,"移机",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,8,mapXJ==null?"0":(mapXJ.get("yj")==null?"0":mapXJ.get("yj").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,9,"异常(有机具)",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,9,mapXJ==null?"0":(mapXJ.get("ycyjj")==null?"0":mapXJ.get("ycyjj").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,10,"不配合(待定)",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,10,mapXJ==null?"0":(mapXJ.get("bphdd")==null?"0":mapXJ.get("bphdd").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,11,"不配合(有机具)",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,11,mapXJ==null?"0":(mapXJ.get("bphyjj")==null?"0":mapXJ.get("bphyjj").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,12,"遗失",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,12,mapXJ==null?"0":(mapXJ.get("ys")==null?"0":mapXJ.get("ys").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,13,"支行回收",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,13,mapXJ==null?"0":(mapXJ.get("zhhs")==null?"0":mapXJ.get("zhhs").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,14,"注销",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,14,mapXJ==null?"0":(mapXJ.get("zx")==null?"0":mapXJ.get("zx").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,15,"切机",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,15,mapXJ==null?"0":(mapXJ.get("qj")==null?"0":mapXJ.get("qj").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,16,"套码",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,16,mapXJ==null?"0":(mapXJ.get("tm")==null?"0":mapXJ.get("tm").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,17,"地址更新",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,17,mapXJ==null?"0":(mapXJ.get("dzgx")==null?"0":mapXJ.get("dzgx").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(1,18,"其他",titleFormat);
			sheetXJ.addCell(lableXJ);
			lableXJ = new Label(2,18,mapXJ==null?"0":(mapXJ.get("kb")==null?"0":mapXJ.get("kb").toString()),detFormat);
			sheetXJ.addCell(lableXJ);
			
			sheetXJ.mergeCells(0, 19, 2, 19);
			lableXJ = new Label(0,19,"合计",titleFormat);
			sheetXJ.addCell(lableXJ);
//			lableXJ = new Label(3,19,mapXJ==null?"0":(mapXJ.get("hjZongShu")==null?"0":mapXJ.get("hjZongShu").toString()),detFormat);
			lableXJ = new Label(3,19, String.valueOf(Integer.parseInt(mapXJ==null?"0":(mapXJ.get("zcZongShu")==null?"0":mapXJ.get("zcZongShu").toString()))+Integer.parseInt(mapXJ==null?"0":(mapXJ.get("ycZongShu")==null?"0":mapXJ.get("ycZongShu").toString()))) ,detFormat);
			sheetXJ.addCell(lableXJ);
			
			
			int columnXJ = 4;
			int columnXZ = 0;
			int columnHZ = 0;
			int columnSJ = 0;
			int columnQJ = 0;
			int columnYJ = 0;
			int columnGJ = 0;
			
//			sheet.setRowView(0, 588, false); 
			lableXJ = new Label(columnXJ++, 0, "设备状态", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "设备状态", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "设备状态", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "设备状态", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "设备状态", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "设备状态", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "设备状态", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheetXJ.setColumnView(1, 9);
			lableXJ = new Label(columnXJ++, 0, "工单备注", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "工单备注", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "工单备注", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "工单备注", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "工单备注", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "工单备注", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "工单备注", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(2, 9);
			lableXJ = new Label(columnXJ++, 0, "区域", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "区域", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "区域", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "区域", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "区域", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "区域", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "区域", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(3, 9);
			lableXJ = new Label(columnXJ++, 0, "确认人", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "确认人", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "确认人", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "确认人", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "确认人", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "确认人", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "确认人", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(4, 9);
			lableXJ = new Label(columnXJ++, 0, "客户经理", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "客户经理", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "客户经理", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "客户经理", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "客户经理", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "客户经理", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "客户经理", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(5, 9);
			lableXJ = new Label(columnXJ++, 0, "客户经理电话", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "客户经理电话", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "客户经理电话", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "客户经理电话", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "客户经理电话", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "客户经理电话", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "客户经理电话", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(6, 15);
//			sheet.setColumnView(7, cellView);
			lableXJ = new Label(columnXJ++, 0, "商户代码 ", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "商户代码", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "商户代码", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "商户代码", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "商户代码", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "商户代码", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "商户代码", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(8, cellView);
			lableXJ = new Label(columnXJ++, 0, "终端号", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "终端号", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "终端号", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "终端号", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "终端号", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "终端号", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "终端号", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(9, cellView);
			lableXJ = new Label(columnXJ++, 0, "商户中文名称", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "商户中文名称", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "商户中文名称", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "商户中文名称", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "商户中文名称", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "商户中文名称", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "商户中文名称", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(10, 100);
			lableXJ = new Label(columnXJ++, 0, "经营地址", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "经营地址", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "经营地址", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "经营地址", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "经营地址", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "经营地址", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "经营地址", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(11, cellView);
			lableXJ = new Label(columnXJ++, 0, "商户新址", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "商户新址", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "商户新址", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "商户新址", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "商户新址", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "商户新址", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "商户新址", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(12, cellView);
			lableXJ = new Label(columnXJ++, 0, "商户联系人 ", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "商户联系人 ", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "商户联系人 ", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "商户联系人 ", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "商户联系人 ", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "商户联系人 ", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "商户联系人 ", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(13, cellView);
			lableXJ = new Label(columnXJ++, 0, "商户联系人电话", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "商户联系人电话", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "商户联系人电话", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "商户联系人电话", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "商户联系人电话", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "商户联系人电话", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "商户联系人电话", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(14, cellView);
			lableXJ = new Label(columnXJ++, 0, "开户日期", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "开户日期", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "开户日期", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "开户日期", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "开户日期", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "开户日期", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "开户日期", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(15, cellView);
			lableXJ = new Label(columnXJ++, 0, "安全模块号", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "安全模块号", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "安全模块号", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "安全模块号", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "安全模块号", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "安全模块号", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "安全模块号", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(16, cellView);
			lableXJ = new Label(columnXJ++, 0, "终端序列号", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "终端序列号", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "终端序列号", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "终端序列号", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "终端序列号", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "终端序列号", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "终端序列号", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(17, cellView);
			lableXJ = new Label(columnXJ++, 0, "绑定固定电话号码", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "绑定固定电话号码", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "绑定固定电话号码", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "绑定固定电话号码", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "绑定固定电话号码", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "绑定固定电话号码", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "绑定固定电话号码", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(18, cellView);
			lableXJ = new Label(columnXJ++, 0, "设备类型", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "设备类型", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "设备类型", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "设备类型", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "设备类型", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "设备类型", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "设备类型", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(19, cellView);
			lableXJ = new Label(columnXJ++, 0, "开户行", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "开户行", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "开户行", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "开户行", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "开户行", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "开户行", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "开户行", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);
//			sheet.setColumnView(20, cellView);
			lableXJ = new Label(columnXJ++, 0, "确认日期", titleFormat);
			lableXZ = new Label(columnXZ++, 0, "确认日期", titleFormat);
			lableHZ = new Label(columnHZ++, 0, "确认日期", titleFormat);
			lableSJ = new Label(columnSJ++, 0, "确认日期", titleFormat);
			lableQJ = new Label(columnQJ++, 0, "确认日期", titleFormat);
			lableYJ = new Label(columnYJ++, 0, "确认日期", titleFormat);
			lableGJ = new Label(columnGJ++, 0, "确认日期", titleFormat);
			sheetXJ.addCell(lableXJ);
			sheetXZ.addCell(lableXZ);
			sheetHZ.addCell(lableHZ);
			sheetSJ.addCell(lableSJ);
			sheetQJ.addCell(lableQJ);
			sheetYJ.addCell(lableYJ);
			sheetGJ.addCell(lableGJ);


			
			CellView cellView = new CellView();  
			cellView.setAutosize(true); //设置自动大小
			if (result != null && result.size() > 0) {
//				int row = 0;
//				int firstRow = 1;
				int rowXJ=1,rowXZ=1,rowHZ=1,rowSJ=1,rowQJ=1,rowYJ=1,rowGJ=1;
				String type="";
				boolean isEnd = true;
				for (int i = 0; i < result.size(); i++) {
					columnXJ = 4;
					columnXZ = 0;
					columnHZ = 0;
					columnSJ = 0;
					columnQJ = 0;
					columnYJ = 0;
					columnGJ = 0;
					Object[] obj = (Object[]) result.get(i);
					String deviceStatus = (String) obj[0];
					String bussManagerName = (String) obj[4];
					String orderType = (String) obj[20];
					String workType = (String) obj[21];
					if(orderType.contains(",")){
						type = "综合工单";
					}else{
						type=orderType.equals("14")?PosConst.posServiceOrderType.get(workType):PosConst.posOrderType.get(orderType);
					}
					Manager manager = PosManagerHelpler.getManagerById(bussManagerName);
					String deviceStatus1 = PosConst.deviceStatus.get(deviceStatus);
					if(orderType.contains("15")){//巡检
						sheetXJ=getSheet(sheetXJ,lableXJ,columnXJ,rowXJ,obj);
						rowXJ++;
					}
					if(orderType.contains("10")){//新装
						sheetXZ=getSheet(sheetXZ,lableXZ,columnXZ,rowXZ,obj);
						rowXZ++;
					}
					if(orderType.contains("11")){//换装
						sheetHZ=getSheet(sheetHZ,lableHZ,columnHZ,rowHZ,obj);
						rowHZ++;
					}
					if(orderType.contains("14") && workType.contains("3")){//程序升级
						sheetSJ=getSheet(sheetSJ,lableSJ,columnSJ,rowSJ,obj);
						rowSJ++;
					}
					if("18".equals(deviceStatus)){//切机
						sheetQJ=getSheet(sheetQJ,lableQJ,columnQJ,rowQJ,obj);
						rowQJ++;
					}
					if("07".equals(deviceStatus)){//移机
						sheetYJ=getSheet(sheetYJ,lableYJ,columnYJ,rowYJ,obj);
						rowYJ++;
					}
					if("22".equals(deviceStatus)){//跟进
						sheetGJ=getSheet(sheetGJ,lableGJ,columnGJ,rowGJ,obj);
						rowGJ++;
					}
					
//					row++;
//					firstRow++;
				}
			}
			
		} catch (Exception ex) {
			ex.printStackTrace();
			throw ex;
		} finally {
			if (workbook != null) {
				workbook.write();
				workbook.close();
			}
			if (os != null) {
				os.close();
			}
		}
	}
	
	public static WritableSheet getSheet(WritableSheet sheet,Label lable,int column,int row,Object[] obj) throws RowsExceededException, WriteException{
		String deviceStatus = (String) obj[0];
		String statusExplain = (String) obj[1];
		String bussOrgId = (String) obj[2];
		String execOperNo = (String) obj[3];
		String bussManagerName = (String) obj[4];
		String storeNo = (String) obj[5];
		String terminalNo = (String) obj[6];
		String companyFullName = (String) obj[7];
		String companyDoor = (String) obj[8];
		String address = (String) obj[9];
		String businessName = (String) obj[10];
		String businessMobile = (String) obj[11];
		String registrationDate = (String) obj[12];
		String securityModuleCode = (String) obj[13];
		String deviceSn = (String) obj[14];
		String businessPhone = (String) obj[15];
		String deviceType = (String) obj[16];
		String openingBank = (String) obj[17];
		String orderTime = (String) obj[18];
		String orderStatus = (String) obj[19];
		String orderType = (String) obj[20];
		String workType = (String) obj[21];
		String managerName = (String)obj[22];
		String managerPhone = (String)obj[23];
		String remark = (String)obj[24];
		
		String type = "";
		if(orderType.contains(",")){
			type = "综合工单";
		}else{
			type=orderType.equals("14")?PosConst.posServiceOrderType.get(workType):PosConst.posOrderType.get(orderType);
		}
		Manager manager = PosManagerHelpler.getManagerById(bussManagerName);
		String deviceStatus1 = PosConst.deviceStatus.get(deviceStatus);
		
		//设备状态	
	    sheet.setColumnView(column, 10);//根据内容固定列宽
		lable = new Label(column++, row, (deviceStatus1==null?"":deviceStatus1), detFormat);
		sheet.addCell(lable);
		//工单备注	
		sheet.setColumnView(column, 50);
		lable = new Label(column++, row, remark, detFormat);
		sheet.addCell(lable);
		//区域	
		sheet.setColumnView(column, 10);
		lable = new Label(column++, row, StoreHelper.getOrgNameByOrgId(bussOrgId), detFormat);
		sheet.addCell(lable);
		//确认人	
		sheet.setColumnView(column, 10);
		lable = new Label(column++, row,PosManagerHelpler.getManagerNameById(execOperNo), detFormat);
		sheet.addCell(lable);
		//客户经理	
		sheet.setColumnView(column, 10);
		lable = new Label(column++, row,managerName, detFormat);
		sheet.addCell(lable);
		//客户经理电话	
		sheet.setColumnView(column, 15);
		lable = new Label(column++, row, managerPhone, detFormat);
		sheet.addCell(lable);
		//商户代码 
		sheet.setColumnView(column, 25);
		lable = new Label(column++, row, storeNo, detFormat);
		sheet.addCell(lable);
		//终端号	
		sheet.setColumnView(column, 15);
		lable = new Label(column++, row, terminalNo, detFormat);
		sheet.addCell(lable);
		//商户中文名称	
		sheet.setColumnView(column, 50);
		lable = new Label(column++, row, companyFullName, detFormat);
		sheet.addCell(lable);
		//经营地址	
		sheet.setColumnView(column, 50);
		lable = new Label(column++, row, companyDoor, detFormat);
		sheet.addCell(lable);
		//商户新址	
		sheet.setColumnView(column, 50);
		lable = new Label(column++, row, address, detFormat);
		sheet.addCell(lable);
		//商户联系人 	
		sheet.setColumnView(column, 10);
		lable = new Label(column++, row, businessName,detFormat);
		sheet.addCell(lable);
		//商户联系人电话	
		sheet.setColumnView(column, 15);
		lable = new Label(column++, row, businessMobile, detFormat);
		sheet.addCell(lable);
		//开户日期	
		sheet.setColumnView(column, 20);
		lable = new Label(column++, row, registrationDate, detFormat);
		sheet.addCell(lable);
		//安全模块号	
		sheet.setColumnView(column, 25);
		lable = new Label(column++, row, securityModuleCode, detFormat);
		sheet.addCell(lable);
		//终端序列号	
		sheet.setColumnView(column, 20);
		lable = new Label(column++, row, deviceSn,detFormat);
		sheet.addCell(lable);
		//绑定固定电话号码	
		sheet.setColumnView(column, 15);
		lable = new Label(column++, row, businessPhone,detFormat);
		sheet.addCell(lable);
		//设备类型	
		sheet.setColumnView(column, 10);
		lable = new Label(column++, row, (deviceType.equals("0")?"商务通":(deviceType.equals("1")?"POS":"")),detFormat);
		sheet.addCell(lable);
		//开户行	
		sheet.setColumnView(column, 30);
		lable = new Label(column++, row, openingBank,detFormat);
		sheet.addCell(lable);
		//确认日期
		sheet.setColumnView(column, 20);
		lable = new Label(column++, row, orderTime,detFormat);
		sheet.addCell(lable);
		
//		lable = new Label(column++, row, PosConst.posOrderStatus.get(orderStatus),detFormat);
//		sheet.addCell(lable);
//		lable = new Label(column++, row, type,detFormat);
//		sheet.addCell(lable);
//		lable = new Label(column++, row, statusExplain, detFormat);
//		sheet.addCell(lable);
		
		return sheet;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值