用java poi组件实现对word文档的读取和修改操作
1.首先去下载poi的基础库,下载地址:http://poi.apache.org/download.html
?
2.当前最高版本3.8? ,将poi-3.8-20120326.jar 和 poi-excelant-3.8-20120326.jar这两个文件加入到项目中
?
3.其他就是java的相关操作了,核心代码如下:
?
public void writeWord(HttpServletResponse response , ContractInput ci) {String URL = "F:/word/base.doc";File file = new File(URL);try { FileInputStream in = new FileInputStream(file);POIFSFileSystem pfs = new POIFSFileSystem(in);HWPFDocument hwpf = new HWPFDocument(pfs);Range range = hwpf.getRange();ci.replace(range);response.reset();response.setContentType("application/x-msdownload");String fileName = ci.getDistShow() + ci.getRealName();//response.addHeader("Content-Disposition", "attachment; filename=\""+new String(fileName.getBytes("gb2312"),"iso8859-1")+".doc\"");ByteArrayOutputStream ostream = new ByteArrayOutputStream();ServletOutputStream servletOS = response.getOutputStream();hwpf.write(ostream);servletOS.write(ostream.toByteArray());servletOS.flush();servletOS.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
?
?
?
?? ci.replace(range);处理替换信息,代码如下:
?
public String replace(Range range){range.replaceText("丁培芳(身份证号码:xxxxx)", userInfo);range.replaceText("福建省 泉州市 晋江市", distShow);range.replaceText("贰", bzjStr);range.replaceText("400", maxFan);range.replaceText("10", commission);range.replaceText("丁培芳", realName);range.replaceText("dingpeifeng", userName);range .replaceText("13559582912", showMobel);return null;}?