POI docx 模板交换

[代码] [Java]代码 import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.List;
i http://www.aaafaipiao.com/linked/20130205.do http://www.haofapiao.com/linked/20130205.do; ; mport 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.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.openxml4j.opc.OPCPackage;

/*
 * @author:Dede
 * @version:1.0
 * @createTime:Feb 1, 2013 3:20:14 PM
 * @package:
 * @fileName:POITest.java
 * @description: 
 */
public class POITest {
	public static void searchAndReplace(String srcPath, String destPath,Map map) {
				try {
					OPCPackage pack = POIXMLDocument.openPackage(srcPath);
					XWPFDocument doc = new XWPFDocument(pack);
					List paragraphs = doc.getParagraphs();
					for (XWPFParagraph tmp : paragraphs) {
						//System.out.println(tmp.getParagraphText());
						List runs = tmp.getRuns();
						for (XWPFRun r : runs) {
							System.out.println("XWPFRun-Text:"   r.getText(0));
							for (Entry e : map.entrySet()) {
								if (r.getText(0).equals(e.getKey())) {
									r.setText(map.get(r.getText(0)),0);
								}
							}
							
							
						}
					}

					FileOutputStream fos = new FileOutputStream(destPath);
					doc.write(fos);
					fos.flush();
					fos.close();
				} catch (Exception e) {
					e.printStackTrace();
				}

	}

	public static void main(String[] args) throws Exception {
		HashMap map=new HashMap();
		map.put("${name}", "OSC红薯");
		map.put("${yyyy}", "2013");
		map.put("${mm}", "02");
		map.put("${dd}", "01");
		String srcPath = "c:\\20110829_4416.docx";
		String destPath = "c:\\2.doc";
		searchAndReplace(srcPath ,destPath,map);

		}
}
posted @ 2013-02-06 02:30  chinadiy197601  阅读(320)  评论(0编辑  收藏  举报