java导出利用POI技术合并单元格(列)

java导出利用POI技术合并单元格(列)

1,原标题,表头导出样式

标题样式
标题样式表头样式
在这里插入图片描述

2,现期望样式

在这里插入图片描述

3,步骤如下

1. 业务层

public void exportOffsetResult(HttpServletResponse response, RedirectAttributes redirectAttributes, StuPaycostOwe records) {
   

		List<StuPaycostOwe> findListRecords = findListRecords(records);
		if(!findListRecords.isEmpty()) {
   
			String fileName=findListRecords.get(0).getGrade()+"导入反馈"+DateUtils.getDate("yyyy年MM月dd日 HH时mm分ss秒");
			List<Map<String, Object>> resultLM = createExcelMsg(findListRecords);
			List< List<String>> listStr=Lists.newArrayList();//表头的List集合
   	        List<Integer> intRow=Lists.newArrayList();//存放那些行不需要添加背景填充和数据行格式一样如果不需要则置为空list
   	        intRow.add(0);
   	        //设置表头数据
   	        List<String>  li0=Lists.newArrayList();
	    	List<String>  li1=Lists.newArrayList();
	    	List<String>  li2=Lists.newArrayList();
	    	//设置需要取值的键值`在这里插入代码片`
	    	List<String>  liKey=Lists.newArrayList();
	    	//设置需要合并的单元格
	    	List<String>  rli=Lists.newArrayList();
	    	rli.add("1,2,0,0");
	    	rli.add("1,2,1,1");
	    	rli.add("1,2,2,2");
	    	rli.add("1,2,3,3");
	    	rli.add("1,2,4,4");
	    	rli.add("1,2,5,5");
	    	rli.add("1,2,6,6");
	    	rli.add("1,2,7,7");
	    	rli.add("1,2,8,8");
	    	rli.add("1,2,9,9");
	    	rli.add("1,2,10,10");
	    	rli.add("1,2,11,11");
	    	rli.add("1,2,12,12");
	    	rli.add("1,2,13,13");
	    	rli.add("1,2,14,14");
	    	rli.add("1,2,15,15");
	    	rli.add("1,2,16,16");
	    	rli.add("1,2,17,17");
	    	li0.add(fileName);
	    	li1.add("序号");li2.add("");
	    	li1.add("学年");li2.add("");
	    	li1.add("年级");li2.add("");
	    	li1.add("院系");li2.add("");
	    	li1.add("专业");li2.add("");
	    	li1.add("班级");li2.add("");
	    	li1.add("学生姓名");li2.add("");
	    	li1.add("学号");li2.add("");
	    	li1.add("考生号");li2.add("");
	    	li1.add("身份证号");li2.add("");
	    	li1.add("学生类型");li2.add("");
	    	li1.add("宿舍类型");li2.add("");
	    	li1.add("助学贷款");li2.add("");
	    	li1.add("建档立卡");li2.add("");
	    	li1.add("缓缴金额");li2.add("");
	    	li1.add("应缴金额");li2.add("");
	    	li1.add("实缴金额");li2.add("");
	    	li1.add("欠费金额");li2.add("");
	    	List<NewCostTuitionFees> payDetails = findListRecords.get(0).getPayDetails();
	    	rli.add("1,1,18,"+(payDetails.size()+18-1)+"");
	    	for (int i = 0; i < payDetails.size(); i++) {
   
	    		li2.add(payDetails.get(i).getCostName());
	    		if(i == 0) {
   
	    			li1.add("缴费明细");
	    		}else {
   
	    			li1.add("");
	    		}
			}
	    	List<ChargeWay> payMethods = findListRecords.get(0).getPayMethods();
	    	rli.add("1,1,"+(payDetails.size()+18)+","+(payDetails.size()+18+payMethods.size()-1)+"");
	    	for (int i = 0; i < payMethods.size(); i++
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值