您的位置:首页 > 编程语言 > Java开发

poi读写word模板

2015-10-09 09:55 399 查看
有一word文档表格

形如:

姓名 ${name} 

电话 ${tel}

 

从数据库读取记录替换上述变量

 

import java.io.FileOutputStream;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import org.apache.poi.POIXMLDocument;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.poi.xwpf.usermodel.XWPFTable;

import org.apache.poi.xwpf.usermodel.XWPFTableCell;

import org.apache.poi.xwpf.usermodel.XWPFTableRow;

public class DOCWriter {

 public static void searchAndReplace(String srcPath ,String destPath,Map<String,String> map) {

  try {

   XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage(srcPath));

   Iterator it = document.getTablesIterator();

   while(it.hasNext()){

    XWPFTable table = (XWPFTable)it.next();

    int rcount = table.getNumberOfRows();

    for(int i =0 ;i < rcount;i++){

     XWPFTableRow row = table.getRow(i);

     List<XWPFTableCell> cells =  row.getTableCells();

     for (XWPFTableCell cell : cells){

        for(Entry<String,String> e : map.entrySet()){

         if (cell.getText().equals(e.getKey())){

          cell.removeParagraph(0);

          cell.setText(e.getValue());

         }

        }

     }

    }

   }

       FileOutputStream outStream = null;

       outStream = new FileOutputStream(destPath);

          document.write(outStream);

          outStream.close();

  } catch (Exception e) {

   e.printStackTrace();

  }

 }

 public static void main(String[] args) throws Exception {

  HashMap map=new HashMap();

  map.put("${name}", "王五");

  map.put("${tel}", "8886666");

  String srcPath = "c:\\1.docx";

  String destPath = "c:\\2.doc";

  searchAndReplace(srcPath ,destPath,map);

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  word java java web poi 文档