java根据word模板导出_java根据word模板导出word⽂件1、word模板⽂件处理,如下图所⽰在word ⽂档中填值的地⽅写⼊占位变量
2、将word⽂档另存为xml⽂件、编辑如下图,到填写的占位,修改为${bcrxm}格式
3、将⽂件后缀名改为.ftl⽂件
4、java处理过程 、 引⼊frameMark jar 包
5、java代码
⼀、将需要填充的数据封装到map中、与模板中的占位对应、为什么⽤map 我也不知道。
⼆、创建configuration对象
三、设置编码 utf-8
四、获取模板 configuration.setDirectoryForTemplateLoading() ⽅法、Template()⽅法
五、将模板和数据模型合并⽣成⽂件 template.process(map, out); //map为封装的数据、out为输出流对象
6、完整代码、configuration.setClassForTemplateLoading ⽅法有不同的使⽤⽅式、可以根据⾃⼰的需要选择、具体使⽤⽅法、问度娘。
public staticString createWord1(Map dataMap,String templateName,String filePath,String fileName,HttpServletRequest request,HttpServletResponse response){
String fileOnlyName=null;try{//创建配置实例
Configuration configuration = newConfiguration();//设置编码
configuration.setDefaultEncoding("UTF-8");//ftl模板⽂件统⼀放⾄ template 包下⾯
configuration.setClassForTemplateLoading(Util.class,"/template/");//获取模板
Template template = Template(templateName,"UTF-8");//重命名
fileOnlyName =rename(fileName);//定义路径 统⼀放到 webappo/hgjc/uploadRoot⽬录下
mkdirs方法String servicePath =Session().getServletContext().getRealPath(File.separator);
String basePath=
File outFile = new File(servicePath+basePath);//如果输出⽬标⽂件夹不存在,则创建
if (!ParentFile().exists() ){
}//将模板和数据模型合并⽣成⽂件
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));//⽣成⽂件
template.process(dataMap, out);//关闭流
out.flush();
out.close();
}catch(Exception e) {
e.printStackTrace();
}returnfileOnlyName;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论