当前位置: 首页 > news >正文

少儿编程课网课哪个好百度关键词搜索引擎排名优化

少儿编程课网课哪个好,百度关键词搜索引擎排名优化,澳门彩资料网址大全,深圳宣传片折叠组是什么?如图就是用POI 实现的,代码很简单:sheet.groupRow(开始行,结束行)即可 但是万万没想到,最终实现出的结果,合并的组,有一部分并没有渲染出来,如下图: 因为我…

折叠组是什么?如图就是用POI 实现的,代码很简单:sheet.groupRow(开始行,结束行)即可
在这里插入图片描述
但是万万没想到,最终实现出的结果,合并的组,有一部分并没有渲染出来,如下图:

在这里插入图片描述在这里插入图片描述
因为我的合并数据,是结合着数据逻辑的特殊动态计算出来的,一直认为是我算法的问题,或者是数据的问题,
这是我的算法,

合并组调用:List<List<Integer>> groupRows = setGroupRowE(startIndex,dataB);for(int i=0; i<groupRows.size(); i++) {sheet.groupRow(groupRows.get(i).get(0),groupRows.get(i).get(1));}
/*** 根据数据规则动态计算分组下标* @param startIndex* @param data* @return*/private List<List<Integer>> setGroupRowE(int startIndex,List<Map<String, Object>> data) {List<List<Integer>> groupRowAll = new ArrayList<>();List<List<Integer>> groupRow2 = new ArrayList<>();Map<String,List<Integer>> cache = new LinkedHashMap<>();int finalStartIndex = startIndex;for(int i = 0; i <data.size(); i++) {if(Constant.SYMBOL.equals(data.get(i).get(Constant.SEC_TYPE1))){// 第一级int finalI = i;int firstRow0 = groupRowAll.size() == 0 ? finalStartIndex : (int)groupRowAll.get(groupRowAll.size()-1).get(1)+1;List<Map<String, Object>> finalData1 = data;int count = (int) data.stream().filter((item)-> finalData1.get(finalI).get(Constant.RULE_TYPE).equals(item.get(Constant.RULE_TYPE)) && !Constant.SYMBOL.equals(item.get(Constant.SEC_TYPE1))).collect(Collectors.toList()).size();List<Integer> group1 = new ArrayList<>();if (count == 0) {group1  =  Arrays.asList(firstRow0,firstRow0);groupRow2 = new ArrayList<>();System.out.println("---" +data.get(finalI).get(Constant.RULE_TYPE).toString()+ "---" + group1);cache.put(data.get(finalI).get(Constant.RULE_TYPE).toString(), group1);groupRowAll.add(group1);} else {group1 =  Arrays.asList(firstRow0 + 1,firstRow0 + count);cache.put(data.get(finalI).get(Constant.RULE_TYPE).toString(), group1);System.out.println("---" +data.get(finalI).get(Constant.RULE_TYPE).toString()+ "---" + group1);groupRow2 = new ArrayList<>();groupRowAll.add(group1);}}if(Constant.SYMBOL.equals(data.get(i).get(Constant.SEC_TYPE))){// 第二级int finalI = i;int firstRow0 = groupRow2.size() == 0 ? cache.get(data.get(finalI).get(Constant.RULE_TYPE).toString()).get(0) : (int)groupRow2.get(groupRow2.size()-1).get(1)+1;List<Map<String, Object>> finalData = data;int count = (int) data.stream().filter((item)-> finalData.get(finalI).get(Constant.RULE_TYPE).equals(item.get(Constant.RULE_TYPE))&& finalData.get(finalI).get(Constant.SEC_TYPE1).equals(item.get(Constant.SEC_TYPE1))&& !Constant.SYMBOL.equals(item.get(Constant.SEC_TYPE))).collect(Collectors.toList()).size();List<Integer> group1 =  Arrays.asList(firstRow0 + 1,firstRow0 + count);System.out.println("--------" +group1);groupRow2.add(group1);groupRowAll.add(group1);}}System.out.println(groupRowAll);return groupRowAll;}

在这里插入图片描述
经过反复调试,和数据比对,数据应该没问题,针对计算出来的合并组行和Excel的行进行比对,没有发现任何问题,现在很大程度上认为是POI的BUG。

问题解决

还好没有放弃,通过百度,和翻阅资料,找到了唯一的一篇文章https://www.5axxw.com/questions/content/u1sln7
里面的问题和我的问题一样,解决点来说就是在最初创建workbook对象,我new 的是SXSSFWorkbook对象,应该用XSSFWorkbook对象,那么他俩到底啥区别呢?
在这里插入图片描述
也就是我们用流操作workbook在操作时获取的不是一个完整的Workbook对象,它是为了防止内存溢出;知道这一点,只需要将SxssFWorkbook 改为XSSFWorkbook,Sheet 改为XSSFSheet 即可,其余不变

在这里插入图片描述
在这里插入图片描述
执行导出结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.15wanjia.com/news/8060.html

相关文章:

  • 学会网站建设项目百度平台营销宝典
  • 凡科建站电脑版网址上海网站建设关键词排名
  • 广东网站建设公司电话河南企业网站推广
  • 可以做本地生活服务的有哪些网站宁德市蕉城区疫情
  • 网站开发价格多少短链接在线生成
  • 备案网站公共查询免费推广的渠道有哪些
  • 三五互联做的网站怎么样google网站增加关键词
  • 做网站还有意义吗百度权重查询网址
  • 建设网站建设营销网站模板
  • 新手学做网站这本书网络软文营销的案例
  • 网站设计原型免费个人网站制作
  • html5动态效果的网站是怎么做的5118营销大数据
  • 微信做爰视频网站优化大师电脑版官网
  • 2小时wordpress建站app推广拉新接单平台
  • 单招网站开发热搜榜排名今日
  • 海外网站入口网络推广的手段
  • 专门做ppt的网站名称杭州seo软件
  • 邢台网站制作市场百度网站推广费用多少
  • 网站首页 动画案例设计一个公司网站多少钱
  • 重庆市住房和建设委员会网站百度ai智能写作工具
  • 如何用c 做网站如何做企业网页
  • window7 iis建立网站网络广告营销的特点
  • 网站网络广告推广厦门谷歌seo公司有哪些
  • 怎么做网站上面的那种卡通图片百度收录申请
  • 人力资源网站模板好口碑关键词优化
  • 做暧昧视频网站最好的seo外包
  • 网站右下角调用优酷视频广告代码百度站长工具平台登录
  • 罗湖网站建设优化seo如何去做优化
  • 潜山网站建设营销策划公司排名
  • 深圳做微商网站制作关键洞察力