java 模板导出word(含图片)

https://www.cnblogs.com/xiaotian-222/p/7017619.html

分为以下三个步骤:

1.先制作word模板

java 模板导出word(含图片)

2.将该文档另存为 xml 文件

java 模板导出word(含图片)

3.打开xml 文件

java 模板导出word(含图片)

 

将对应的字段替换,比如

java 模板导出word(含图片)

4.将xml文件保存成ftl格式的文档

5.相应的代码:

package org.lq.ssm.gp.controller;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import sun.misc.BASE64Encoder;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class wordController {
    
     private Configuration configuration = null;  
     
        public wordController(){  
            configuration = new Configuration();  
            configuration.setDefaultEncoding("UTF-8");  
        }  
          
        public static void main(String[] args) {  
            wordController test = new wordController();  
            test.createWord();  
        }  
          
        public void createWord(){  
            Map<String,Object> dataMap=new HashMap<String,Object>();  
            getData(dataMap);  
          
            System.out.println(this.getClass().getResource("/util"));
            configuration.setClassForTemplateLoading(this.getClass(), "/controller");  //FTL文件所存在的位置  
            Template t=null;  
            try {

                t = configuration.getTemplate("baodan2.ftl"); //文件名
            } catch (IOException e) {
                e.printStackTrace();  
            }
            File outFile = new File("H:/baodan/baodan.doc");  
            Writer out = null;  
            try {  
                out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));  
            } catch (FileNotFoundException e1) {  
                e1.printStackTrace();  
            }  
               
            try {  
                t.process(dataMap, out);  
            } catch (TemplateException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
      
        private void getData(Map<String, Object> dataMap) {  
            
              List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
            dataMap.put("name", "");  
            dataMap.put("username", "");  
            dataMap.put("userzjh", "");  
            dataMap.put("userQygs", "");  
            dataMap.put("image", getImageStr());
      
        }  
        private String getImageStr() {
             String imgFile = "H:\\JT1.jpg";
             
             InputStream in = null;
             byte[] data = null;
             try {
                 in = new FileInputStream(imgFile);
                 data = new byte[in.available()];
                 in.read(data);
                 in.close();
             } catch (IOException e) {
                 e.printStackTrace();
             }
             BASE64Encoder encoder = new BASE64Encoder();        
             return encoder.encode(data);
         }
     
}

注意:private Configuration configuration = new Configuration(); 过时解决办法

Configuration configuration = new Configuration(Configuration.VERSION_2_3_23);