/** * 替换段落里面的变量 * * @param para * 要替换的段落 * @param params * 参数 */ private static void replaceInPara(XWPFParagraph para, Map<String, Object> params) { List<XWPFRun> runs; Matcher matcher; if (matcher(para.getParagraphText()).find()) { runs = para.getRuns(); for (int i = 0; i < runs.size(); i++) { XWPFRun run = runs.get(i); String runText = run.toString(); matcher = matcher(runText); if (matcher.find()) { while ((matcher = matcher(runText)).find()) { runText = matcher.replaceFirst(String.valueOf(params.get(matcher.group(1)))); } // 直接调用XWPFRun的setText()方法设置文本时,在底层会重新创建一个XWPFRun,把文本附加在当前文本后面, // 所以我们不能直接设值,需要先删除当前run,然后再自己手动插入一个新的run。 para.removeRun(i); para.insertNewRun(i).setText(runText); } } } }
public void changeText(XWPFParagraph p, String newText) { List<XWPFRun> runs = p.getRuns(); for(int i = runs.size() - 1; i > 0; i--) { p.removeRun(i); } XWPFRun run = runs.get(0); run.setText(newText, 0); }
public void changeText(XWPFParagraph p, String newText) { List<XWPFRun> runs = p.getRuns(); for(int i = runs.size() - 1; i > 0; i--) { p.removeRun(i); } XWPFRun run = runs.get(0); run.setText(newText, 0); }
paragraph.removeRun(runToRemove);
IRunBody parent = run.getParent(); if (parent instanceof XWPFParagraph) { ((XWPFParagraph) parent).removeRun(runTemplate.getRunPos());
paragraph.removeRun(p + rmvCount); // 由于需要合并到第一个小块内,所以需要把当前Run移除掉 rmvCount--; }catch(Exception e){}
paragraph.removeRun(p + rmvCount); // 由于需要合并到第一个小块内,所以需要把当前Run移除掉 rmvCount--; }catch(Exception e){}
paragraph.removeRun(i);