关于不知道为什么poi4.1获取图表是乱序的解决方法

笨办法,重新进行了排序

   
    /**
     * 对图表List重新排序
     * @param affCharts  doc.getCharts()
     * @return
     */
    public List<XWPFChart> getSortListForXWPFChart(List<XWPFChart> affCharts) {
        List<XWPFChart> charts = new ArrayList<>();
        int itNumber = 0; //计数器
        int oldNumber = 0; //入参计数器
        while (itNumber < affCharts.size()){
           // 从oldCharts.get(0)开始检索,获取排序用图表名
            String name = affCharts.get(oldNumber).getPackagePart().getPartName().toString();
            // 获取此图表排序
            String chartsNum = "";// 图表序号
            boolean flag = false; // 上一个是否为数字
            for (int i = 0; i < name.length(); i++) {
                if (chartsNum.equals("") && name.charAt(i)>=48 && name.charAt(i)<=57 ){
                    chartsNum += name.charAt(i);
                    flag = true;
                }else if ( flag && name.charAt(i)>=48 && name.charAt(i)<=57){
                    chartsNum += name.charAt(i);
                    flag = true;
                }else {
                    flag = false;
                }
            }
            //对比图表序号数字
            int thisChartNum = Integer.parseInt(chartsNum);
            if (thisChartNum == itNumber+1){ //如果相等则加入返回list,且itNumber++
                charts.add(affCharts.get(oldNumber));
                itNumber++;
            }
            
            //入参计数器+1 如果达到最大值则重置为0
            if (oldNumber == affCharts.size()-1){
                oldNumber = 0;
            }else{
                oldNumber++;
            }
        }
        return charts;
    }
    

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值