有一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); } }
以上方法,直接考入导入包后直接可运行
本文转自:http://www.geekcome.com/content-10-3567-1.html