问题描述
我正在使用Apache POI XWPF来操作docx文件,我需要更新一些段落文字并更改其字体样式。要更新一个单词,可以,假设我的docx内容具有以下段落:
Lorem ipsum dolor坐着,安全奉献精英。 Integer pretium sodales nisl,ut ornare ligula vehicula vitae。 Fusce non magna feugiat,马萨诸塞州马萨诸塞州,发酵罐。 Curabitur auctor leo vitae 学期,促进功能性前庭。毛里斯痣 sem,编号venenatis arcu congue id。 Duis nulla quam,Commodore Vel Dolor eget,颞部静脉曲张。佩莱恩特斯克孕妇 t,智人秘诀,非咒语性外阴 性爱色情。麦格纳斯(Magna Nunc)的梅塞纳斯(Maecenas)。
Nulla sagittis aliquam maximus。 Cras faucibus id是need sed faucibus。紫茎泽兰等植物中的原发性前庭 溃疡性小疮菜豆发酵菌 最大内翻。 Pellentesque du lorem,卢克图斯·非洛雷姆a,布兰迪特 拉希尼亚阿库。 Nunc porttitor erat ut elit hendrerit malesuada。塞得 礼拜堂,rutrum est ut,vulputate orci。悬念直径 ullamcorper,个人简历,feugiat前。在习惯中 高原苦酒。每个类别的许可 根据历史的概念委内瑞拉Proin Massa lectus e.fassilla a niss.fastilla molestie nisl。
我只是做类似的事情,在这种情况下,代码有效,我只想将单词“ ipsum”更新为“ hello world”:
File file = new File("document.docx");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
XWPFDocument document = new XWPFDocument(fis);
List<XWPFParagraph> paragraphs = document.getParagraphs();
for (XWPFParagraph p: paragraphs) {
List<XWPFRun> runs = p.getRuns();
for (XWPFRun r: runs) {
String endText = r.getText(0).replaceFirst("ipsum","hello world");
r.setText(endText,0);
}
}
document.write(new FileOutputStream(uuid + ".docx"));
fis.close();
document.close();
但是,如果我尝试更改文本样式(如粗体),甚至更改字体颜色,则所有“运行”都会改变,不仅是我搜索过的世界。我该怎么做才能更改示例文本中仅单词“ ipsum”的字体样式?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)