public static void writeDoc(String path,Map<String, String> map) {
try {
FileInputStream in = new FileInputStream(new File("D:\\需要读取的word.doc"));
HWPFDocument hdt = new HWPFDocument(in);
Range range = hdt.getRange();
//读取word文本内容
System.out.println(range.text());
//替换文本内容
for (Map.Entry<String,String> entry:map.entrySet()) {
range.replaceText(entry.getKey(),entry.getValue());
}
ByteArrayOutputStream ostream = new ByteArrayOutputStream();
FileOutputStream out = new FileOutputStream("D:\\处理后的word.doc");
hdt.write(ostream);
//输出字节流
out.write(ostream.toByteArray());
ostream.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Map<String, String> map=new HashMap<String, String>();
map.put("test", "测试");
writeDoc("D:\\111.doc",map);
}
本实例代码使用的 POI-3.8-beta4-20110826.jar 和 poi-scratchpad-3.8-beta4-20110826.jar 连个包!
以前版本可能导致乱码,和内容不对的问题!
此版本经过验证可以修改word内容!
POI包下载地址:点击打开链接