生活随笔
收集整理的這篇文章主要介紹了
Java库 学习笔记 - POI 在Word文档中查找指定关键字并设置背景色
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
隨手測試,有空再研究。
<dependency><groupId>org.apache.poi
</groupId><artifactId>poi-ooxml
</artifactId><version>3.8
</version></dependency><dependency><groupId>org.apache.poi
</groupId><artifactId>poi-scratchpad
</artifactId><version>3.8
</version></dependency>
思路:逐個遍歷所有段落,將其拆分為3部分。
關鍵字之前的文字 + 關鍵字 + 關鍵字之后的文字。
然后對關鍵字對象進行替換設置。
最后再把三部分拼回去。(相當于替換掉了原來的段落)
如果有多個關鍵字,可以考慮段落.split(關鍵字)
package com
.excel
.demo
;import org
.apache
.poi
.xwpf
.usermodel
.XWPFDocument
;
import org
.apache
.poi
.xwpf
.usermodel
.XWPFParagraph
;
import org
.apache
.poi
.xwpf
.usermodel
.XWPFRun
;
import org
.openxmlformats
.schemas
.wordprocessingml
.x2006
.main
.CTR
;
import org
.openxmlformats
.schemas
.wordprocessingml
.x2006
.main
.CTShd
;
import org
.openxmlformats
.schemas
.wordprocessingml
.x2006
.main
.STShd
;import java
.io
.File
;
import java
.io
.FileInputStream
;
import java
.io
.FileOutputStream
;
import java
.io
.OutputStream
;public class WOo {public static void main(String
[] args
) {File file
= new File("C:\\test.docx");String str
= "";try {FileInputStream fis
= new FileInputStream(file
);XWPFDocument xdoc
= new XWPFDocument(fis
);String sourceStr
= "原字符串";String targetStr
= "替換為字符串";String targetColor
= "ff0000"; String targetBgColor
= "ffff00"; for (int i
= 0; i
< xdoc
.getParagraphs().size(); i
++) {XWPFParagraph xwpfParagraph
= xdoc
.getParagraphs().get(i
);if(xwpfParagraph
.getText().contains(sourceStr
)) {String text
= xwpfParagraph
.getText();String begin
= text
.substring(0, text
.indexOf(sourceStr
)); String end
= text
.substring(text
.indexOf(sourceStr
) + sourceStr
.length
); XWPFRun run
= xwpfParagraph
.getRuns().get(0).getParagraph().createRun(); run
.setColor(targetColor
); run
.setText(targetStr
); run
.setBold(true); CTShd cTShd
= run
.getCTR().addNewRPr().addNewShd(); cTShd
.setVal(STShd
.CLEAR
);cTShd
.setColor("auto"); cTShd
.setFill(targetBgColor
);xwpfParagraph
.getRuns().get(0).getParagraph().createRun().setText(begin
);xwpfParagraph
.getRuns().get(0).getParagraph().addRun(run
); xwpfParagraph
.getRuns().get(0).getParagraph().createRun().setText(end
);xwpfParagraph
.getRuns().get(0).getParagraph().removeRun(0);break;}}OutputStream os
= new FileOutputStream("C:\\test2.docx");xdoc
.write(os
);fis
.close();} catch (Exception e
) {e
.printStackTrace();}}
}
參考資料
簡書:Apache POI自動生成Word文檔(帶目錄)
Apache POI - Javadocs
org.apache.poi.xwpf.usermodel.XWPFParagraph
org.apache.poi.xwpf.usermodel.XWPFRun
總結
以上是生活随笔為你收集整理的Java库 学习笔记 - POI 在Word文档中查找指定关键字并设置背景色的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。