Jfinal学习----批量导出数据到excel

展示:

 

 

主要代码:

/**
     * 批量导出
     */
    public void exportExcel(){
        String elektitaLabel = getPara("elektitaLabel");
        Integer status = getParaToInt("status");//0-未租 ;1-在租   (0闲置中1出租未满 2出租已满)
        List<List<String>> rows = houseService.exportExcel(elektitaLabel, status);
        String uuid = IdUtil.randomUUID();
        String url = PathKit.getWebRootPath()+"/download/"+uuid+".xlsx";
        if(rows.size() <= 1000){
            ExcelWriter writer = ExcelUtil.getWriter(url);
            writer.write(rows);
            writer.close();
        }else{
            BigExcelWriter writer= ExcelUtil.getBigWriter(url);
            writer.write(rows);
            writer.close();
        }
        EventKit.post(new FileEvent(url));
        renderFile(new File(url), DateUtil.now()+".xlsx");
    }
/**
	 * 小程序后台管理-房间管理 批量导出
	 * @param elektitaLabel
	 * @param status
	 * @return
	 */
	public List<List<String>> exportExcel(String elektitaLabel, Integer status){
		List<Object> params = new ArrayList<Object>();
		StringBuilder builder = new StringBuilder("select h.id,b.communityName,h.numberPlate,h.status,c.tenantName,c.tenantMobile,h.rentStatus,h.elektita_label as elektitaLabel, c.checkInTime,c.checkOutTime,c.signStatus");
		builder.append("  from fwzl_house h join fwzl_building b on h.buildingId = b.id left join");
		builder.append("  (select  hs.houseId,hs.checkInTime,hs.checkOutTime,hs.status as signStatus,aet.fullName as tenantName,aet.mobile as tenantMobile");
		builder.append(" from fwzl_house_sign hs join upms_account_expand aet on hs.accountId = aet.accountId where hs.status = ? ) c on c.houseId = h.id");
		params.add(FwzlConstant.HOUSE_SIGN_STATUS_ING);
		builder.append("  where h.delFlag = 0");
		if(Assert.CheckNotNull(elektitaLabel)){
			builder.append(" and h.elektitaLabel like ?");
			params.add("%"+elektitaLabel+"%");
		}
		if(Assert.CheckNotNull(status)){
			if(status == 0){
				builder.append(" and (h.status = ? or h.status = ?)");
				params.add(FwzlConstant.HOUSE_STATUS_ING);
				params.add(FwzlConstant.HOUSE_STATUS_NOT_FULL);
			}else if(status == 1){
				builder.append(" and (h.status = ? or h.status = ?)");
				params.add(FwzlConstant.HOUSE_STATUS_NOT_FULL);
				params.add(FwzlConstant.HOUSE_STATUS_HAD_FULL);
			}
		}
		builder.append("  group by h.id order by b.communityName desc,h.numberPlate desc");
		List<Record> list = Db.find(builder.toString(), params.toArray());
		List<List<String>> rows = new ArrayList<List<String>>();
		List<String> row1 = CollUtil.newArrayList("ID", "小区名", "房间名", "房间状态", "租客信息", "租客手机号", "显示状态", "精选标签", "租期");
		rows.add(row1);
		for(Record record : list){
			String statusStr = "";
			if(record.getInt("status") == 0){
				statusStr = "空房";
			}else if(record.getInt("status") == 1){
				statusStr = "在租/空房";
			}else if(record.getInt("status") == 2){
				statusStr = "在租";
			}else if(record.getInt("status") == 3){
				statusStr = "自住";
			}
			String displayStatusStr = "";
			if(record.getInt("rentStatus") == 0){
				displayStatusStr = "下架";
			}else if(record.getInt("rentStatus") == 1){
				displayStatusStr = "上架";
			}
			List<String> row = CollUtil.newArrayList(record.getStr("id"), record.getStr("communityName"), record.getStr("numberPlate"),
					statusStr,record.getStr("tenantName"),record.getStr("tenantMobile"),displayStatusStr,record.getStr("elektitaLabel"),
					DateUtil.formatDateTime(record.getDate("checkOutTime")));
			rows.add(row);
		}
		return rows;
	}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值