研究了好几天基于docx的word模板操作,其他的都还好,只是图片稍微有点复杂。直接看代码吧。
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
public class CreateFile {
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception{
Map<String,String> parm = new HashMap<String, String>();
parm.put("${bjbh}", "11");
parm.put("${applyDepartmentPerson}", "22");
parm.put("${receive_year}", "33");
parm.put("${receive_month}", "44");
parm.put("${receive_day}", "55");
parm.put("${dealName}", "66");
searchAndReplace ("C:/Users/Administrator/Desktop/news1.docx","C:/Users/Administrator/Desktop/neword_1.docx",parm);
}
@SuppressWarnings("resource")
public static void searchAndReplace(String srcPath, String destPath,Map<String, String> map) {
try {
InputStream docis = new FileInputStream(srcPath);
CustomXWPFDocument document = new CustomXWPFDocument(docis);
// 替换段落中的指定文字
Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();
while (itPara.hasNext()) {
XWPFParagraph paragraph = (XWPFParagraph) itPara.next();
//String s = paragraph.getParagraphText()