POI 导出word

来源:互联网 发布:java数据库开发培训 编辑:程序博客网 时间:2024/06/07 09:39

Demo:
package test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TestQwehyc {

/** * @param args * @throws IOException  */     public static void main(String[] args) {         String destFile="D:\\生成的文件.doc";//生成文件的路径 当然也可以生成咋项目里 方便下载         //根据Word模板导出单个Word文档         Map<String, String> map=new HashMap<String, String>();         map.put("name", "冯");         map.put("sex", "女");         map.put("idCard", "200010");         map.put("year1", "2000");         map.put("month1", "07");         //注意biyezheng_moban.doc文档位置,此例中为应用根目录         HWPFDocument document=new TestQwehyc().replaceDoc("D:/Users/TpSourect/Workspaces/MyEclipse 10/TTest/src/biyezheng_moban.doc", map);         ByteArrayOutputStream ostream = new ByteArrayOutputStream();         try {             document.write(ostream);             //输出word文件             OutputStream outs=new FileOutputStream(destFile);             outs.write(ostream.toByteArray());             outs.close();         } catch (IOException e) {             e.printStackTrace();         }     }     /**      *       * @param destFile      * @param fileCon      */     public void exportDoc(String destFile,String fileCon){         try {             ByteArrayInputStream bais = new ByteArrayInputStream(fileCon.getBytes());             POIFSFileSystem fs = new POIFSFileSystem();             DirectoryEntry directory = fs.getRoot();              directory.createDocument("WordDocument", bais);             FileOutputStream ostream = new FileOutputStream(destFile);             fs.writeFilesystem(ostream);             bais.close();             ostream.close();         } catch (IOException e) {             e.printStackTrace();         }     }     /**      * 读取word模板并替换变量      * @param srcPath      * @param map      * @return      */     public HWPFDocument replaceDoc(String srcPath, Map<String, String> map) {         try {             // 读取word模板             FileInputStream fis = new FileInputStream(new File(srcPath));             HWPFDocument doc = new HWPFDocument(fis);             // 读取word文本内容             Range bodyRange = doc.getRange();             // 替换文本内容             for (Map.Entry<String, String> entry : map.entrySet()) {                 bodyRange.replaceText("${" + entry.getKey() + "}", entry                         .getValue());             }             return doc;         } catch (Exception e) {             e.printStackTrace();             return null;         }     } }

模板:
这里写图片描述

1 0
原创粉丝点击