Apache POI库是一个用于处理Microsoft Office格式文件的Java库。以下是一个简单的示例代码:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
public class WordWriter {
public static void main(String[] args) {
try {
// 读取模板
FileInputStream in = new FileInputStream("template.docx");
XWPFDocument document = new XWPFDocument(in);
// 设置匹配标识符
Map<String, String> placeholders = new HashMap<>();
placeholders.put("${NAME}", "John");
// 将占位符替换为传入的值
for (XWPFParagraph p : document.getParagraphs()) {
for (XWPFRun r : p.getRuns()) {
String text = r.getText(0);
for (Map.Entry<String, String> entry : placeholders.entrySet()) {
if (text != null && text.contains(entry.getKey())) {
text = text.replace(entry.getKey(), entry.getValue());
r.setText(text, 0);
}
}
}
}
// 然后生成一个新的文档
FileOutputStream out = new FileOutputStream("output.docx");
document.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
FileInputStream 的参数为模板路径;
FileOutputStream 的参数为输出文档路径;