package cn.com.test.util;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import org.apache.log4j.Logger;
import freemarker.core.ParseException;
import freemarker.template.Configuration;
import freemarker.template.MalformedTemplateNameException;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateNotFoundException;
/**
* word工具类
* @author: Rodge
* @time: 2017年12月24日 上午09:01:47
* @version:V1.0.0
*/
public final class WordUtil {
/** 日志对象 **/
private static final Logger LOGGER = Logger.getLogger(WordUtil.class);
/** 临时目录 **/
private static final String TEMP_PATH = "temp/";
/** 临时docx文件 **/
private static final String TEMP_FILE_DOCX = "temp.docx";
/** utf-8字符编码 **/
private static final String CHARSET_UTF8 = "UTF-8";
/** 缓冲区大小1M **/
private static final int BUFFER_SIZE = 1024 * 1024;
/** 私有构造器 **/
private WordUtil() { }
/**
* 根据模板生成新的word2003文档
* @param modelPath 模板存放路径,例如:/template/word/word2003.xml
* @param savePath 新文档保存路径,例如:D:/word/word2003.doc
* @param map 写入文档的数据
*/
public static void createWord2003(String modelPath, String savePath, Map<String, Object> map) {
Template template = getTemplate(modelPath);
if (template != null) {
File file = createFile(savePath);
try (Writer out = new OutputStreamWriter(new FileOutputStream(file))) {
template.process(map, out);
} catch (TemplateException | IOException e) {
LOGGER.error("生成word2003文档失败", e);
}
}
}
/**
* 根据模板生成新的word2003文档&#x
java操作word文档通用工具类
最新推荐文章于 2024-07-18 14:41:16 发布
这是一个Java工具类,用于根据模板生成Word2003和Word2007文档。使用FreeMarker模板引擎,支持将数据写入文档并保存为新的Word文件,同时提供字节数组返回功能。
摘要由CSDN通过智能技术生成