1.下面是我做的加载模板导出带图片的word的导出方式,使用之前请映入freemarker的jar包,可以从百度下载即可。

2.首先准备到你要导出的word模板,在要填充的模板中填入el表达式,如下图所示。

XXXX公司招聘高校毕业生应聘登记表

姓    名

${name}

性   别

${sex}

出生年月

${birthday}

联系方式

${mobile}

电子邮箱

${email}

籍贯

${nativeplace}

民族

${national}

户籍所在地

${permanreside}

政治面貌

${polity}

参加党派时间

${joinpolitydate}

参加工作时间

${joinworkdate}

健康状况

${health}

计算机水平

${computerlevel}

接受其他工作地点

${isacceptreplace}

可到岗日期

${candutydate}

职业资格

${prof}

期望工作类型

${expect_worktype}

期望工作地点

${expect_workaddr}

身份证号

${id}

掌握何种外语及熟练程度

${froeignlang}

应聘学历

${edu}

学  位

${pk_degree}

熟悉专业(特长)

${personal}

自我评价

${evaluation}

学习经历

起止时间

学历和学位

学校名称

所学专业或

研究方向

是否

全日制

${begindate}

${education}

${school}

${major}

${studymode}

实践或工作经历

起止时间

单位

职务(岗位)

具体工作要点

证明人

${begindate}

${workcorp}

${workjob}

${workduty}

${certifier}

获得证书情况

证书名称

获得时间

发证单位

级别、成绩

证书编号

${vencourmeas}

${vencourdate}

${vencourunit}

${encourrank}

${vencourtype}

学术成果情况

论文(成果)

名称

核心期刊或收录机构名称

年度及期次

作者排序

论文索引号

${glbdef1}

${glbdef2}

${glbdef3}

${glbdef4}

${glbdef5}

获奖情况(奖学金及评优)

证书名称

获得时间

发证单位

证书编号

证书类型

${glbdef1}

${glbdef2}

${glbdef3}

${glbdef4}

${glbdef5}

主要家庭成员或社会关系

称谓

姓名

出生年月

工作单位及职务

(岗位、职称)

${mem_relation}

${mem_name}

${mem_birthday}

${mem_corp}

其他情况说明

诚信

承诺

本人承诺,以上信息均与事实相符,若有虚假,即自愿取消应聘资格。

承诺人:

注意:如果有图片,要找一张图片先在word中填充,顺便调整好你的图片的样式。这样导出的word的也会按照你设定的样式进行导出word.

3.打开word,选择另存为,保存为xml文件格式,如下图:

4.然后修改.xml文件的后缀名为.ftl,也就是freemarker格式。

5.然后使用文本编辑器打开。最好的如notepad++,UE等。

6.框中的文件保留,横线划掉的删除。注意:图片是如下图格式

将黑色字符替换成${自定义名称}即可。

7.用<#list studylist as stydy></#list>标签将集合循环的<w:tr>包含住,注:studylist 是你返回的map集合的名称,与程序中保持一致。study为变量名,自己自定义命名即可。 格式如图:

8.至此,模板已做好,之后映入我这个类,然后运行即可。

package com.hr.fs.web.controller;import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
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 nc.bs.framework.common.RuntimeEnv;
import sun.misc.BASE64Encoder;import com.hr.fs.web.model.FS_RmCorpUserVO;
import com.hr.fs.web.model.base.StaticConfig;
import com.jfinal.core.Controller;import freemarker.cache.FileTemplateLoader;
import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;public class FExportTempleteController extends Controller{private Configuration configuration = null;//模板的位置private String wordtemplate =  RuntimeEnv.getInstance().getNCHome()+"\\hotwebs\\fshr\\resumetemplet";//下载的位置及文件名private String fileName = RuntimeEnv.getInstance().getNCHome()+"\\hotwebs\\fshr\\file\\个人简历模板.doc";public FExportTempleteController() {  configuration = new Configuration();  configuration.setDefaultEncoding("utf-8");  }public void exportWord(){//获取用户FS_RmCorpUserVO user = getSessionAttr("user");String usertype = user.getUsertype();//新建一个map用来存储Map<String, Object> dataMap = new HashMap<String, Object>();//模板的名字String fileTemplateName ;if(usertype.equals(StaticConfig.SCHOOLRECRUITSTATUS)){fileTemplateName = "schoolexport.ftl";getSchoolData(dataMap);}else if(usertype.equals(StaticConfig.SOCIETYRECRUITSTATUS)){fileTemplateName = "societyexport.ftl";getSchoolData(dataMap);}else{fileTemplateName = "innerexport.ftl";getSchoolData(dataMap);}//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。//这里我们的模板是放在resumetemplet路径下面  使用FileTemplateLoaderTemplateLoader templateLoader=null;Template t=null; Writer out = null;try{templateLoader=new FileTemplateLoader(new File(wordtemplate));configuration.setTemplateLoader(templateLoader);t=configuration.getTemplate(fileTemplateName,"UTF-8");//输出文档路径及名称  File outFile = new File(fileName);out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));//装载数据t.process(dataMap, out);renderFile(outFile);out.close();}catch(Exception e){e.printStackTrace();}}/*** 生成数据* @param dataMap*/private void getSchoolData(Map map){try {/*** 设置基本信息*/map.put("name", "");map.put("sex", "");map.put("birthday", "");map.put("national", "");map.put("email", "");map.put("nativeplace", "");map.put("mobile", "");map.put("permanreside", "");map.put("polity", "");map.put("joinpolitydate", "");map.put("joinworkdate", "");map.put("health", "");map.put("computerlevel", "");map.put("isacceptreplace", "");map.put("candutydate", "");map.put("prof", "");map.put("expect_worktype", "");map.put("expect_workaddr", "");map.put("id", "");map.put("froeignlang", "");map.put("edu", "");map.put("pk_degree", "");map.put("personal", "");map.put("evaluation", "");map.put("img", getImageStr(""));/*** 学习经历*/List<Map<String, Object>> studyList = new ArrayList<Map<String, Object>>();Map<String, Object> studymap;studymap = new HashMap<String, Object>();studymap.put("begindate", "");studymap.put("education", "");studymap.put("school", "");studymap.put("major", "");studymap.put("studymode", "");studyList.add(studymap);map.put("studylist", studyList);/*** 获取工作信息*/List<Map<String, Object>> workList = new ArrayList<Map<String, Object>>();Map<String, Object> workmap;workmap = new HashMap<String, Object>();workmap.put("begindate",  "");workmap.put("workcorp", "");workmap.put("workjob", "");workmap.put("workduty", "");workmap.put("certifier", "");workList.add(workmap);map.put("worklist", workList);/*** 获取证书情况*/List<Map<String, Object>> encList = new ArrayList<Map<String, Object>>();Map<String, Object> encmap;encmap = new HashMap<String, Object>();encmap.put("vencourmeas", "");encmap.put("vencourdate", "");encmap.put("vencourunit", "");encmap.put("encourrank", "");encmap.put("vencourtype", "");encList.add(encmap);map.put("certifierlist", encList);/*** 获取学术成果*/List<Map<String, Object>> scienceList = new ArrayList<Map<String, Object>>();Map<String, Object> sciencemap;sciencemap = new HashMap<String, Object>();sciencemap.put("glbdef1", "");sciencemap.put("glbdef2", "");sciencemap.put("glbdef3", "");sciencemap.put("glbdef4", "");sciencemap.put("glbdef5", "");scienceList.add(sciencemap);map.put("sciencelist", scienceList);/*** 获取获奖情况*/List<Map<String, Object>> prizeList = new ArrayList<Map<String, Object>>();Map<String, Object> prizemap;prizemap = new HashMap<String, Object>();prizemap.put("glbdef1", "");prizemap.put("glbdef2", "");prizemap.put("glbdef3", "");prizemap.put("glbdef4", "");prizemap.put("glbdef5", "");prizeList.add(prizemap);map.put("prizelist", prizeList);/*** 获取家庭情况信息*/List<Map<String, Object>> homeList = new ArrayList<Map<String, Object>>();Map<String, Object> homemap;homemap = new HashMap<String, Object>();homemap.put("mem_relation", "");homemap.put("mem_name", "");homemap.put("mem_birthday", "");homemap.put("mem_corp", "");homeList.add(homemap);map.put("homelist", homeList);}catch(Exception e){e.printStackTrace();}}/*** 将图片转换为base64存储*/private String getImageStr(String pk) {if(pk.equals("") && pk.length() == 0){pk="default_headpic.png";}String imgfilepath = RuntimeEnv.getInstance().getNCHome()+"\\hotwebs\\fshr\\image\\";String imgFile = imgfilepath+pk;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();if(data==null){return "";}else{return encoder.encode(data);}}}

poi使用模板导出word带图片相关推荐

  1. POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)

    POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...

  2. java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc

    JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...

  3. freemarker模板导出word循环图片表格详细教程

    前言:表哥之前已经过一篇freemarker模板导出带表格word详细教程  freemarker模板导出带表格word详细教程_Java大表哥的博客-CSDN博客,为什么现在又要写一篇呢. 因为我这 ...

  4. java freemarker导出word 带图片,文件导出后图片无法使用office正常打开

    问题记录:java freemark导出word 带图片,文件导出后图片无法使用office正常打开,解决之! 现象:wps打开正常,office如下 修改点: 图片${image1}标签前后保证无空 ...

  5. vue 导出word带图片

    下载依赖 包 npm install docxtemplater npm install pizzip npm install jszip npm install jszip-utils npm in ...

  6. Freemarker 模板导出(带图片)

    1. 依赖 <!--FreeMarker--><dependency><groupId>org.freemarker</groupId><arti ...

  7. 【springboot+poi+poi-tl 模板导出wrod (包含图片集合、页眉、页脚)】

    springboot+poi+poi-tl 模板导出wrod 1. maven依赖 <dependency><groupId>org.apache.poi</groupI ...

  8. poi根据模板导出word(包含图片、动态生成表格、合并单元格)(亲测有效)

    准备工作: 1.需要的jar(jar包在资源处已上传,可下载) 2.创建docx模板(doc不可以) 第一步:准备好jar(这里面的 ooxml-schemas-1.1.jar 大家可以尝试用poi- ...

  9. 使用springboot和freemarker导出word带图片

    1.首先,要有一个模板word文件(.doc)  里面的样式要先调整好,需要放图片的地方加一个图片 占位  文字内容也要加一些内容占位 2.然后把word转成.ftl格式文件  很贱单  先把word ...

最新文章

  1. eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法
  2. python 内推_网易有道2017内推编程题 洗牌(python)
  3. 手把手教你webpack3(3)入口(多入口)entry
  4. Mybatis自定义SQL拦截器
  5. svm matlab 画图,matlab 画图
  6. php短链接api,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
  7. 第四季-专题21-USB驱动程序设计
  8. 使用jrtplib(RTP)传输H.264视频文件
  9. 关于Faster Rcnn的一些理解
  10. 银灿IS916也可以量产三驱三启动成功教程
  11. 计算机三级网络技术知识点大全(九)
  12. 使用PS更改照片的背景色
  13. qq邮箱发html版式是乱的,为什么在Word里编辑的内容到QQ邮箱里发给别人是乱的,我用附件发的呀...
  14. 职场技巧:高效实用的四象限法则
  15. Windows Server搭建SAN存储服务(一)
  16. 需求分析师应具备的几项能力
  17. PTA 7-154 置点不动产——认真学习,努力工作买买房子吧
  18. java实现word文件转图片,支持分页
  19. NGINX中如何根据客户端IP地址控制访问
  20. SpringAnimation详解

热门文章

  1. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...
  2. 【JavaSE】基础语法练习---减肥计划(流程控制)
  3. QT加载muPDF库和对muPDF的调用
  4. 万年历c语言攀枝花,C语言实现万年历
  5. 计算机基础知识+数据类型
  6. 微信小程序(第十九章)- 用户评价页面实现
  7. Soul新发布录音有电流 杂音 m4a文件夹 解决方法
  8. Linux基础命令学习——实战篇(给swap分区增加500M)
  9. php前台源码,PHP房产中介小程序源码8.0.2 后端模块+前台小程序 解密开源版
  10. 晒一手hbs helper