打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
poi.hwpf 操作word 越详细越好
/***
     * 实现Word模板读取替换内容输出
     * @param filePath 模板路径
     * @param haderMap 页眉数据
     * @param bodyMap  内容数据
     * @param footMap  页脚数据
     */
    public static void readwriteWord(String filePath, Map<String,String> haderMap,Map<String ,String> bodyMap,Map<String,String> footMap){
        //读取word模板
        FileInputStream in = null;
        try {
            in = new FileInputStream(new File(filePath));
        catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        HWPFDocument hdt = null;
        try {
            hdt = new HWPFDocument(in);
        catch (IOException e1) {
            e1.printStackTrace();
        }
        //读取word页眉内容
        Range harderRange= hdt.getHeaderStoryRange();
        //替换word页眉内容
        for(Map.Entry<String, String> entry:haderMap.entrySet()){
            harderRange.replaceText("${" + entry.getKey() + "}", entry.getValue());           
        }
         
        //读取页脚内容
        Range footRange=hdt.getFootnoteRange();
        //替换页脚内容
        for(Map.Entry<String,String> entry:footMap.entrySet()){
            footRange.replaceText("${" + entry.getKey().trim() + "}", entry.getValue());           
        }
         
        //读取word文本内容
        Range bodyRange = hdt.getRange();
        //替换文本内容   
        for (Map.Entry<String,String> entry: bodyMap.entrySet()) {
            bodyRange.replaceText("${" + entry.getKey() + "}",entry.getValue());
            
        }
         
       // PicturesTable   picturesTable=  hdt.getPicturesTable();
//        //hdt.addPicture(bytes, XWPFDocument.PICTURE_TYPE_JPEG); 
//        
//        FileInputStream fis = new FileInputStream("F:\\picture\\http_imgload.jpg");
//        //将图片添加到xlsx文件
//        int picinx = hdt.addPicture(fis, XWPFDocument.PICTURE_TYPE_JPEG);
//        fis.close();
//    
         
         
        ByteArrayOutputStream ostream = new ByteArrayOutputStream();
        String fileName = ""+System.currentTimeMillis();
        fileName += ".doc";
        FileOutputStream out = null;
        try {
            out = new FileOutputStream("E:\\test\\"+fileName,true);
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        try {
            hdt.write(ostream);
        catch (IOException e) {
            e.printStackTrace();
        }
        //输出字节流
        try {
            out.write(ostream.toByteArray());
        catch (IOException e) {
            e.printStackTrace();
        }
        try {
            out.close();
        catch (IOException e) {
            e.printStackTrace();
        }
        try {
            ostream.close();
        catch (IOException e) {
            e.printStackTrace();
        }
    }    
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法
Properties属性文件
文件压缩类
大容量XML文件解析辅助--xml批量分解 - OO - Java - JavaEye论坛
Java IO最详解
Java中Properties类的使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服