通过poi解析word(替换word中的部分内容)

解析03版(.doc)word:

HWPFDocument doc=null;              //HWPFDocument 对应03版word
        try {
             doc =new HWPFDocument(new FileInputStream("F:\\upload\\template_03.doc"));    //获得要替换的word模板
             Range range = doc.getRange();                             //range获取word中的内容
            for (Map.Entry<String,String> entry:replaceContent.entrySet()){          //通过一个Map来替换内容 Map中key值存被替换的内容  Map中value值存要替换的内容,最后通过一个循环实现
                range.replaceText(entry.getKey(),entry.getValue());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return doc;

解析07(.docx) word:

XWPFDocument docx=null;
        try {
            docx=new XWPFDocument(new FileInputStream("F:\\upload\\template_07.docx"));
            List<XWPFParagraph> paragraphs = docx.getParagraphs();                //07版需先获取段落;最后在获取以格式分割的最小单位run
            for (XWPFParagraph paragraph:paragraphs){
                List<XWPFRun> runs = paragraph.getRuns();
                for (XWPFRun run:runs){
                    String str=run.getText(run.getTextPosition());          //获取run中的字符串
                    for (Map.Entry<String,String> entry:replaceContent.entrySet()){
                        str=str.replace(entry.getKey(),entry.getValue());
                    }
                    run.setText(str,0);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return docx;

猜你喜欢

转载自www.cnblogs.com/shouyaya/p/12099714.html