poi使用模板导出word带图片
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带图片相关推荐
- POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
POI操作word和PDF POI根据模板导出word文件 word转PDF PDF转图片再插入PDF中(防止PDF被修改) POI根据模板导出word文件 一.制作word模版,${xxxx}是一会 ...
- java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc
JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...
- freemarker模板导出word循环图片表格详细教程
前言:表哥之前已经过一篇freemarker模板导出带表格word详细教程 freemarker模板导出带表格word详细教程_Java大表哥的博客-CSDN博客,为什么现在又要写一篇呢. 因为我这 ...
- java freemarker导出word 带图片,文件导出后图片无法使用office正常打开
问题记录:java freemark导出word 带图片,文件导出后图片无法使用office正常打开,解决之! 现象:wps打开正常,office如下 修改点: 图片${image1}标签前后保证无空 ...
- vue 导出word带图片
下载依赖 包 npm install docxtemplater npm install pizzip npm install jszip npm install jszip-utils npm in ...
- Freemarker 模板导出(带图片)
1. 依赖 <!--FreeMarker--><dependency><groupId>org.freemarker</groupId><arti ...
- 【springboot+poi+poi-tl 模板导出wrod (包含图片集合、页眉、页脚)】
springboot+poi+poi-tl 模板导出wrod 1. maven依赖 <dependency><groupId>org.apache.poi</groupI ...
- poi根据模板导出word(包含图片、动态生成表格、合并单元格)(亲测有效)
准备工作: 1.需要的jar(jar包在资源处已上传,可下载) 2.创建docx模板(doc不可以) 第一步:准备好jar(这里面的 ooxml-schemas-1.1.jar 大家可以尝试用poi- ...
- 使用springboot和freemarker导出word带图片
1.首先,要有一个模板word文件(.doc) 里面的样式要先调整好,需要放图片的地方加一个图片 占位 文字内容也要加一些内容占位 2.然后把word转成.ftl格式文件 很贱单 先把word ...
最新文章
- eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法
- python 内推_网易有道2017内推编程题 洗牌(python)
- 手把手教你webpack3(3)入口(多入口)entry
- Mybatis自定义SQL拦截器
- svm matlab 画图,matlab 画图
- php短链接api,PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
- 第四季-专题21-USB驱动程序设计
- 使用jrtplib(RTP)传输H.264视频文件
- 关于Faster Rcnn的一些理解
- 银灿IS916也可以量产三驱三启动成功教程
- 计算机三级网络技术知识点大全(九)
- 使用PS更改照片的背景色
- qq邮箱发html版式是乱的,为什么在Word里编辑的内容到QQ邮箱里发给别人是乱的,我用附件发的呀...
- 职场技巧:高效实用的四象限法则
- Windows Server搭建SAN存储服务(一)
- 需求分析师应具备的几项能力
- PTA 7-154 置点不动产——认真学习,努力工作买买房子吧
- java实现word文件转图片,支持分页
- NGINX中如何根据客户端IP地址控制访问
- SpringAnimation详解
热门文章
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...
- 【JavaSE】基础语法练习---减肥计划(流程控制)
- QT加载muPDF库和对muPDF的调用
- 万年历c语言攀枝花,C语言实现万年历
- 计算机基础知识+数据类型
- 微信小程序(第十九章)- 用户评价页面实现
- Soul新发布录音有电流 杂音 m4a文件夹 解决方法
- Linux基础命令学习——实战篇(给swap分区增加500M)
- php前台源码,PHP房产中介小程序源码8.0.2 后端模块+前台小程序 解密开源版
- 晒一手hbs helper