如何通过Apache POI去除Word列表编号后的默认制表符?
解决Word列表编号后默认制表符的问题
Word列表级别默认会在编号后添加制表符作为分隔,要实现编号后无任何跟随内容,只需在代码中显式设置CTLvl的Suffix属性为STSuffix.NONE即可。
修改后的完整代码如下:
CTAbstractNum cTAbstractNum = CTAbstractNum.Factory.newInstance(); CTLvl cTLvl = cTAbstractNum.addNewLvl(); cTLvl.addNewNumFmt().setVal(STNumberFormat.CHINESE_COUNTING); cTLvl.addNewLvlText().setVal("%1、"); cTLvl.addNewStart().setVal(BigInteger.valueOf(1)); // 关键:设置编号后缀为无,替代默认的制表符 cTLvl.addNewSuffix().setVal(STSuffix.NONE); CTInd cInd = cTLvl.addNewPPr().addNewInd(); cInd.setLeft(BigInteger.valueOf(960 + 120)); cInd.setHanging(BigInteger.valueOf(360));
说明
默认情况下,CTLvl的Suffix属性会被自动设置为STSuffix.TAB(制表符),所以生成的编号后会自带制表符。添加cTLvl.addNewSuffix().setVal(STSuffix.NONE);这行代码后,编号会严格按照你定义的%1、显示,后面直接衔接正文,不会有任何额外的分隔符。
内容的提问来源于stack exchange,提问作者Casper Liao
相关产品推荐
相关产品推荐

