Поскольку анализ файла dotx / docx не так прост. У нас есть apache poi, который делает это с некоторыми усилиями, как
XWPFDocument doc = new XWPFDocument(OPCPackage.open("-you docx/dotx file-path-"));
. Таким образом, вы можете загрузить существующий файл.Теперь для анализа файла вы получаете
XWPFParagraph
XWPFTable
Вы можете выполнить синтаксический анализ обоих типов, например:
for (XWPFParagraph p : doc.getParagraphs()) {
List<XWPFRun> runs = p.getRuns();
if (runs != null) {
for (XWPFRun r : runs) {
String text = r.getText(0);
if (text != null && text.contains("$$key$$")) {
text = text.replace("<asdas>", "ABCD");// your content
r.setText(text, 0);
}
}
}
}
Для анализа таблицы
for (XWPFTable tbl : doc.getTables()) {
for (XWPFTableRow row : tbl.getRows()) {
for (XWPFTableCell cell : row.getTableCells()) {
for (XWPFParagraph p : cell.getParagraphs()) {
for (XWPFRun r : p.getRuns()) {
String text = r.getText(0);
if (text != null && text.contains("$$key$$")) {
text = text.replace("<asdas>", "abcd");
r.setText(text, 0);
}
}
}
}
}
}
Теперь, чтобы написатьпроанализировал файл в полученной цели
doc.write(new FileOutputStream("-taget-path-"));
Для этого нужны все зависимости с Apache POI, такие как
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
Вам понадобится еще немного в вашем пути сборки, проверьте исключения и добавьте.
Вы можете использовать эту ссылку и узнать больше
http://poi.apache.org/apidocs/dev/org/apache/poi/xwpf/usermodel/XWPFRun.html#setText%28java.lang.String%29