workbook sheetname最大长度

  使用poi来生成excel,遇到的了一个坑。

       sheet页的名字最后面加上了业务id,肯定是不一样的。但是在创第二个sheet时就是报sheet name已存在。

       原因是我创建的sheet name的固定前缀太长了,最长不能超过32位。超过了会被自动截取为32位。

public boolean doesContainsSheetName(String name, int excludeSheetIdx) {
        String aName = name;
        if(name.length() > 31) {
            aName = name.substring(0, 31);
        }

        for(int i = 0; i < this.boundsheets.size(); ++i) {
            BoundSheetRecord boundSheetRecord = this.getBoundSheetRec(i);
            if(excludeSheetIdx != i) {
                String bName = boundSheetRecord.getSheetname();
                if(bName.length() > 31) {
                    bName = bName.substring(0, 31);
                }

                if(aName.equalsIgnoreCase(bName)) {
                    return true;
                }
            }
        }

        return false;
    }

猜你喜欢

转载自www.cnblogs.com/lnlvinso/p/12483652.html