问题出现:使用poi读取word模板,用于生成最终word中,出现了读取到的标题后再插入新的内容,给他设置为标题2,但是最终生成的word标题确实标题一
分析:通过观察xml文件
正确的:
错误的:
得知,styleId = 2 却映射到了 heading 1 导致设置的标题等级错误
解决方案:
Map<String, String> titleGradeMap = new HashMap<>();
XWPFStyles styles = document.getStyles();
Set<String> titleSet = WordUtils.getWordTitle(document);
for (String titleStyleId : titleSet) {
XWPFStyle style = styles.getStyle(titleStyleId);
if (null != style){
titleGradeMap.put(style.getName().replaceAll("[^0-9]", ""),titleStyleId);
}
}
通过map映射成新的map,设置标题时通过map重新映射的设置标题等级
仅此个人愚见,如有错误请指出,多谢!!!!!!