package com.run.wzgl.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.URLEncoder;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.util.mime.MimeUtility;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;
public class DocUtil {
private Configuration configure = null;
public DocUtil(){
configure= new Configuration();
configure.setDefaultEncoding("utf-8");
}
/**
* 根据Doc模板生成word文件
* @param dataMap Map 需要填入模板的数据
* @param fileName 文件名称
* @param savePath 保存路径
*/
public void createWord(Map<String, Object> dataMap, String downloadType, String savePath){
try{
//加载需要装填的模板
Template template = null;
//加载模板文件
configure.setClassForTemplateLoading(this.getClass(),"/templet");
//设置对象包装器
configure.setObjectWrapper(new DefaultObjectWrapper());
//设置异常处理器
configure.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
//定义Template对象,注意模板类型名字与downloadType要一致
template= configure.getTemplate(downloadType + ".xml");
//输出文档
File outFile = new File(savePath);
Writer out = null;
out= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"utf-8"));
template.process(dataMap,out);
out.flush();
out.close();
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据Doc模板生成word文件
* @param dataMap Map 需要填入模板的数据
* @param fileName 文件名称
* @param savePath 保存路径
*/
public void createDoc(Map<String, Object> dataMap, String downloadType, String fileName,HttpServletResponse resp){
try{
//加载需要装填的模板
Template template = null;
//加载模板文件
configure.setClassForTemplateLoading(this.getClass(),"/templet");
//设置对象包装器
configure.setObjectWrapper(new DefaultObjectWrapper());
//设置异常处理器
configure.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
//定义Template对象,注意模板类型名字与downloadType要一致
template= configure.getTemplate(downloadType + ".xml");
//输出文档
resp.setContentType("application/vnd.ms-word;charset=UTF-8");
resp.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName+".doc", "UTF-8"));
Writer out = null;
out= new BufferedWriter(new OutputStreamWriter(resp.getOutputStream(),"utf-8"));
template.process(dataMap,out);
out.flush();
out.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐
java操作word可操作书签,在word模板文档上设置书签,然后从数据库中查询数据,填充到word文档书签位置,刚拿到需求时,使劲在网上找资料。幻想第三方jar包,帮我实现。有Apatch的POI,java2word,jcob等,一直让我无法...
java2word 生成word,修改word java2word 生成word,修改word java2word 生成word,修改word
由于项目需要,苦苦对Java操作Word进行了一番研究,包括当下比较流行的java2Word、jacob、POI、itext等,只能说各有千秋,但是没有一个是完全适合我的,没有办法,只能去各种尝试,在研究了java2Word这个jar包的API...
Java通过word模板配置书签生成word,这个是公司内部代码直接可以运行
java操作word文档 包含向word书签里插入值 java操作word模板
里面包括java2word生成word文档的代码以及所需要的jar包,jacob1.jar Java2Word.jar
通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中
里面包含一个word转pdf的jar,和一个读取pdf的jar。可以实现Java读取Word文档的页数。
用java修改Word文件,JAVA操作WORD实例
java操作word 实现了三个功能:模板填充,模板数据提取,格式颜色验证,具体解压jar包WordTest实例,注意针对word2007以上,书签要对应
java替换word字符串 附带jar;支持docx,doc
java调用PageOffice在线编辑word文件的时候,获取word文档的条目化内容。 PageOffice V4.0 企业版试用序列号:Q37LN-W8NI-KFSQ-LEY3Y 部署步骤: 1. 拷贝simpledemo8文件夹到Tomcat的webapps目录下 2. 访问...
用Java读取Word文档
java 实现 word 文档的在线预览,资源包含代码和jar包,下载放入项目既可以使用
java操作word用的java2word.jar和java2word.exe。java读写word动态向word模板总填充数据,支持2003、2007、2010word版本。功能简单强大。需要的童靴可以试一下,代码很简单。
Java2Word.rar 可以替换word中的文字 图片 Java2Word.rar
使用第三方Java工具类库Hutool的Word工具类,参考网址为https://www.hutool.cn/docs/#/poi/Word生成-Word07Writer; 2. 利用Apache POI和FreeMarker模板引擎; 3. 第三方报表工具。 上面的几种方式虽然可以实现Word...
java实现word文档到xml文档转换浅析
java2word 文档