java 解析word模板为xml, 动态填充数据到xml,最后输出word文档
在项目中, 一开始是使用java Apache poi 根据word模板生成word报表, 后面发现框架有个低版本的poi 3.0.1, 由于这个版本太低, 新版本poi整合不了旧版本的poi, 所以使用了另外一种方式:
1,先将word文档另存为 : Word 2003 XML文档(*.xml) 格式的模板文件;
2.使用demo4j 在xml动态填充数据
3.把.xml模板后缀改成.doc(一开始是使用jacob, 后面觉得使用这个办法更方便)
上代码…
package com.csp.basic.util.word;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by Rosing on 2019/3/21.
*/
public class ExportDocUtil {
/**
* @return
* @Description: 根据图片地址转换为base64编码字符串
* @Author:
* @CreateTime:
*/
public static String getImageStr(String imgFile) {
InputStream inputStream = null;
byte[] data = null;
try {
inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data).trim();
}
public static void main(String[] args) {
List