freemarker导出word文档
使用freemarker导出word文档的过程
*************************************************************************************
我在开发过程中,使用到了freemarker导出报表,报表内容包括文字说明,表格数据以及图表展示,其中最多工作是在配置ftl文件格式,根据word导出排版进行调整文字格式,表格规范和图片大小位置等。
*************************************************************************************
1、创建ftl文件
——通过另存为,另存为03版的xml,将word文档的doc格式转化为xml
ps:xml也可以是其它版本,只要保证导出的版本支持当前office版本即可

——通过重命名方式将xml格式给成ftl格式

2、创建Freemarker的配置类对象Configuration
——freemarker.properties文件
template_update_delay=0
classic_compatible=true
whitespace_stripping=true
output_encoding=utf-8
locale=zh_CN
default_encoding=utf-8
url_escaping_charset=utf-8
date_format=yyyy-MM-dd
time_format=HH:mm:Ss
datetime_format=yyyy-MM-dd
number_format=\#0.\#\#\#\#\#
boolean_format=true,false
tag_syntax=auto_detect
template_exception_handler=rethrow
——freemarkerProperties引入properties
<bean id="freemarkerProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>classpath:config/freemarker.properties</value>
</list>
</property>
</bean>
——freemarkerConfig配置settings
<bean id="freemarkerConfig" class="freemarker.template.Configuration" scope="singleton">
<property name="settings" ref="freemarkerProperties"/>
</bean>
3、设置导出word的路径参数outPath,创建字符输出流Writer,创建数据存放容器Map<String,Object>,便于ftl文件中使用
File file = new File(outPath);
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
} Writer writer = new OutputStreamWriter(new FileOutputStream(file), "utf-8"); // 将文件流转为字符输出流
Map<String, Object> data = new HashMap(); // 存放数据,在ftl文件中使用EL表达式${}取值
4、获取freemarker的模板对象Template并输出内容,templateFilePath参数是ftl文件的路径
@Autowired
Configuration freemarkerConfig; // 加载模板文件的路径
File loadFile = new File("F:/ETOM/pmms/pmms/src/test/resources/");
configuration.setDirectoryForTemplateLoading(loadFile);
// 获取到模板对象template
Template template = freemarkerConfig.getTemplate(templateFilePath);
template.process(data,writer); // 开始处理数据输出 writer.flush(); // 刷新流数据 writer.close(); // 关闭流
配置ftl文件具体格式,ftl文件指出EL表达式,将ftl压缩否则导出的word文档会比较大,去http://tools.jb51.net/code/xml_format_compress在线格式化ftl、xml文件,将ftl压缩后在进行导出word,但是事先备份一份压缩前的文件,便于维护。
ftl默标签格式
<w:body>
<wx:sect>
<w:p wsp:rsidR="001536AF" wsp:rsidRDefault="001536AF">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="fareast"/>
</w:rPr>
</w:pPr>
</w:p>
<w:sectPr wsp:rsidR="001536AF">
<w:pgSz w:w="11906" w:h="16838"/>
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0"/>
<w:cols w:space="425"/>
<w:docGrid w:type="lines" w:line-pitch="312"/>
</w:sectPr>
</wx:sect>
</w:body>
插入表格
<#assign tableNo = tableNo+1> <!-- 定义临时变量tableNo--> <w:tbl> <!-- 表格 -->
<w:tblPr> <!-- 表格属性 -->
<w:tblW w:w="0" w:type="auto"/>
<w:tblBorders> <!-- 表格边框 -->
<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/> <!-- 上边框 -->
<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/> <!-- 左边框 -->
<w:bottom w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/> <!-- 底边框 -->
<w:right w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/> <!-- 右边框 -->
<w:insideH w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
<w:insideV w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="auto"/>
</w:tblBorders>
<w:tblLook w:val="04A0"/>
</w:tblPr>
<w:tblGrid> <!-- 列属性 -->
<w:gridCol w:w="852"/> <!-- 列宽度 -->
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="852"/>
<w:gridCol w:w="853"/>
<w:gridCol w:w="853"/>
</w:tblGrid>
<w:tr wsp:rsidR="000800C6" wsp:rsidTr="000800C6"> // 行
<w:tc> <!-- 列 -->
<w:tcPr> <!-- 列格式 -->
<w:tcW w:w="852" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<#if list.observationYear == observationYear> <!-- 判断标签 -->
<w:vmerge w:val="continue"/> <!-- 合并单元格 -->
<#else>
<w:vmerge w:val="restart"/> <!-- 不合并单元格 -->
</#if>
</w:tcPr>
<w:p wsp:rsidR="000800C6" wsp:rsidRDefault="000800C6">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="fareast"/>
</w:rPr>
</w:pPr>
<!-- 具体文本内容 -->
<w:r wsp:rsidRPr="005A2876">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast" />
<wx:font wx:val="Times New Roman" />
<w:sz w:val="24" />
<w:sz-cs w:val="24" />
</w:rPr>
<w:t>${list.observationYear}</w:t> <!-- 通过EL表达式将内容出来 -->
</w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
插入空白行
<w:p wsp:rsidR="00341DCB" wsp:rsidRPr="008458B3" wsp:rsidRDefault="00341DCB" wsp:rsidP="00DE6F0B">
<w:pPr>
<w:adjustRightInd w:val="off" />
<w:snapToGrid w:val="off" />
<w:spacing w:line="360" w:line-rule="auto" />
<w:jc w:val="center" />
<w:rPr>
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="28" />
</w:rPr>
</w:pPr>
</w:p>
插入段落,换页
<w:sectPr wsp:rsidR="006C65C8" wsp:rsidSect="006C65C8">
<w:ftr w:type="odd">
<w:p wsp:rsidR="0036538E" wsp:rsidRDefault="0036538E">
<w:pPr>
<w:pStyle w:val="a5" />
<w:jc w:val="center" />
</w:pPr> <!-- 配置页码 -->
<w:r>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r>
<w:instrText>PAGE \* MERGEFORMAT</w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidR="00446307" wsp:rsidRPr="00446307">
<w:rPr>
<w:noProof/>
<w:lang w:val="ZH-CN"/>
</w:rPr>
<w:t>-</w:t>
</w:r>
<w:r wsp:rsidR="00446307">
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t> 1 -</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:p>
<w:p wsp:rsidR="00646A88" wsp:rsidRDefault="00646A88">
<w:pPr>
<w:pStyle w:val="a4"/>
</w:pPr>
</w:p>
</w:ftr>
<w:pgSz w:h="16838" w:w="11906" w:orient="landscape" />
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0" /> <!-- 竖向,具体大小根据实际要求 -->
<!-- <w:pgMar w:top="1800" w:right="1440" w:bottom="1800" w:left="1440" w:header="851" w:footer="992" w:gutter="0" /> --> <!-- 横向 -->
<w:pgNumType w:start="1"/> <!-- 设置页码 -->
<w:cols w:space="425" />
<w:docGrid w:line-pitch="312" />
</w:sectPr>
插入段落,不换页
<w:p wsp:rsidR="00000000" wsp:rsidRDefault="00A15D12">
<w:pPr>
<w:spacing w:line="360" w:line-rule="auto"/>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="24"/>
</w:rPr>
<w:sectPr wsp:rsidR="006C65C8" wsp:rsidSect="006C65C8">
<w:ftr w:type="odd">
<w:p wsp:rsidR="0036538E" wsp:rsidRDefault="0036538E">
<w:pPr>
<w:pStyle w:val="a5" />
<w:jc w:val="center" />
</w:pPr> <!-- 页码配置 -->
<w:r>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r>
<w:instrText>PAGE \* MERGEFORMAT</w:instrText>
</w:r>
<w:r>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidR="00446307" wsp:rsidRPr="00446307">
<w:rPr>
<w:noProof/>
<w:lang w:val="ZH-CN"/>
</w:rPr>
<w:t>-</w:t>
</w:r>
<w:r wsp:rsidR="00446307">
<w:rPr>
<w:noProof/>
</w:rPr>
<w:t> 1 -</w:t>
</w:r>
<w:r>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:p>
<w:p wsp:rsidR="00646A88" wsp:rsidRDefault="00646A88">
<w:pPr>
<w:pStyle w:val="a4"/>
</w:pPr>
</w:p>
</w:ftr>
<w:pgSz w:h="16838" w:w="11906" w:orient="landscape" />
<w:pgMar w:top="1440" w:right="1800" w:bottom="1440" w:left="1800" w:header="851" w:footer="992" w:gutter="0" /> <!-- 竖向,具体大小根据实际情况决定 -->
<!-- <w:pgMar w:top="1800" w:right="1440" w:bottom="1800" w:left="1440" w:header="851" w:footer="992" w:gutter="0" /> --> <!-- 横向 -->
<w:pgNumType w:start="1"/> <!-- 页码 -->
<w:cols w:space="425" />
<w:docGrid w:line-pitch="312" />
</w:sectPr>
</w:pPr>
</w:p>
插入图片
<w:p wsp:rsidR="00675E7E" wsp:rsidRPr="008458B3" wsp:rsidRDefault="005A2876" wsp:rsidP="00DE6F0B">
<w:pPr>
<w:adjustRightInd w:val="off" />
<w:snapToGrid w:val="off" />
<w:spacing w:line="360" w:line-rule="auto" />
<w:jc w:val="center" />
<w:rPr>
<w:sz w:val="28" />
<w:sz-cs w:val="28" />
</w:rPr>
</w:pPr>
<w:r wsp:rsidRPr="00940B3A">
<w:rPr>
<w:noProof />
</w:rPr>
<w:pict> <!-- 绿色标注:w:name与src的内容要一致,否则图片无法展示,并且唯一,否则图片可能与其他图片是同一张 --> <!-- 红色标注:图片路径,后天服务器中图片地址-->
<w:binData w:name="${"wordml://TrafficNum"+list_index+123+"annualAxleloadImgDirBar.jpg"}" xml:space="preserve">${list.imagePath}
</w:binData>
<v:shape id="图表 81" o:spid="_x0000_i1187" type="#_x0000_t75" style="width:391.95pt;height:236.05pt;visibility:visible"
o:gfxdata="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 AAAAAA=="> <v:imagedata src="${"wordml://TrafficNum"+list_index+123+"annualAxleloadImgDirBar.jpg"}" o:title="" />
<o:lock v:ext="edit" aspectratio="f" />
</v:shape>
</w:pict>
</w:r>
</w:p>
图片下标题文字说明,如“图1.1.1 交通量从2016年-2017年的流量统计图”
<w:p wsp:rsidR="00675E7E" wsp:rsidRPr="008458B3" wsp:rsidRDefault="00675E7E" wsp:rsidP="00DE6F0B">
<w:pPr>
<w:spacing w:line="360" w:line-rule="auto" />
<w:jc w:val="center" />
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="21" />
</w:rPr>
</w:pPr>
<w:r wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="21" />
</w:rPr>
<w:t>图</w:t>
</w:r>
<w:r wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="21" />
</w:rPr>
<w:t>${imageNo}</w:t>
</w:r>
<#assign imageIndexForTraffic = imageIndexForTraffic+1> <w:r wsp:rsidR="004D4921" wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="21" />
</w:rPr>
<w:t> </w:t> <!-- 留空格 -->
</w:r>
<w:r wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" /> <!-- 字体大小 -->
<w:sz-cs w:val="21" />
</w:rPr>
<w:t>${list.index1}</w:t>
</w:r>
<w:r wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast" />
<wx:font wx:val="Times New Roman" />
<w:b />
<w:sz w:val="24" />
<w:sz-cs w:val="21" />
</w:rPr>
<w:t>各方向年累计当量轴载随时间变化图</w:t>
</w:r>
</w:p>
插入目录:一级目录
<w:p wsp:rsidR="00132E10" wsp:rsidRPr="00132E10" wsp:rsidRDefault="00161292">
<w:pPr>
<w:pStyle w:val="11"/>
<w:tabs>
<w:tab w:val="right" w:leader="dot" w:pos="8296"/>
</w:tabs>
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:pPr> <!--缩进-->
<#if list_index == 0>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r wsp:rsidR="00132E10" wsp:rsidRPr="00132E10">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:instrText> TOC \o "1-3" \h \z \u </w:instrText>
</w:r>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
</#if>
<w:hlink w:dest="" w:bookmark="${list.linkId}"> <!-- 超链接,当点击目录是,调到指定的文档位置 -->
<w:r wsp:rsidR="00132E10" wsp:rsidRPr="00132E10">
<w:rPr>
<w:rStyle w:val="af"/>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>${list.catalogCode}${list.catalogName}</w:t> <!--目录索引,如“1.1 方案说明”-->
</w:r>
<w:r wsp:rsidR="00132E10" wsp:rsidRPr="00132E10">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:tab/>
</w:r>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="begin">
<w:fldData xml:space="preserve">CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFQAbwBjADQAOQAwADEANAA3ADMAOQAzAAAA <!-- 目录与页码之间的间隔符,如“········” -->
</w:fldData>
</w:fldChar>
</w:r>
<w:r wsp:rsidR="00132E10" wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:instrText> PAGEREF ${list.linkId} \h </w:instrText>
</w:r>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:r>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidR="00132E10" wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>${list.pageNo}</w:t>
</w:r>
<w:r wsp:rsidRPr="00132E10">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:hlink>
</w:p>
插入目录:二级目录
<#if list.directoryLevel == "second">
<w:p wsp:rsidR="001077F7" wsp:rsidRPr="001077F7" wsp:rsidRDefault="001077F7">
<w:pPr>
<w:pStyle w:val="20"/>
<w:tabs>
<w:tab w:val="right" w:leader="dot" w:pos="8296"/>
</w:tabs>
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:pPr>
<w:hlink w:dest="" w:bookmark="${list.linkId}"> <!-- 超链接调到文档指定位置 -->
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rStyle w:val="af"/>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t> ${list.catalogCode}${list.catalogName}</w:t>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:tab/>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="begin">
<w:fldData xml:space="preserve">CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFQAbwBjADQAOQAwADEANAA4ADIANAA3AAAA</w:fldData>
</w:fldChar>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:instrText> PAGEREF ${list.linkId} \h </w:instrText>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>${list.pageNo}</w:t>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:hlink>
</w:p>
</#if>
插入目录:三级目录
<#if list.directoryLevel == "third">
<w:p wsp:rsidR="001077F7" wsp:rsidRPr="001077F7" wsp:rsidRDefault="001077F7">
<w:pPr>
<w:pStyle w:val="30"/>
<w:tabs>
<w:tab w:val="right" w:leader="dot" w:pos="8296"/>
</w:tabs>
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:pPr>
<w:hlink w:dest="" w:bookmark="${list.linkId}"> <!-- 超链接跳转到文档指定位置 -->
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rStyle w:val="af"/>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t> ${list.catalogCode}${list.catalogName}</w:t>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:tab/>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="begin"/>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:instrText> PAGEREF ${list.linkId} \h </w:instrText>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:t>${list.pageNo}</w:t>
</w:r>
<w:r wsp:rsidRPr="001077F7">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman"/>
<wx:font wx:val="Times New Roman"/>
<w:sz w:val="28"/>
<w:sz-cs w:val="28"/>
</w:rPr>
<w:fldChar w:fldCharType="end"/>
</w:r>
</w:hlink>
</w:p>
</#if>
目录索引跳转到当前段落
<w:p wsp:rsidR="007F2BA5" wsp:rsidRPr="008458B3" wsp:rsidRDefault="00266A4A" wsp:rsidP="00DE6F0B">
<w:pPr>
<w:pStyle w:val="1" />
<w:spacing w:before="0" w:after="0" w:line="360" w:line-rule="auto" />
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" />
<wx:font wx:val="Times New Roman" />
<w:sz w:val="32" />
</w:rPr>
</w:pPr>
<aml:annotation aml:id="0" w:type="Word.Bookmark.Start" w:name="${OVERVIEW.linkId}" /> <!-- start开始,linkId与目录中的linkId一致则会跳转到这里 -->
<w:r wsp:rsidRPr="008458B3">
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:h-ansi="Times New Roman" w:hint="fareast" />
<wx:font wx:val="Times New Roman" />
<w:sz w:val="32" />
</w:rPr>
<w:t>${OVERVIEW.catalogCode}${OVERVIEW.catalogName}</w:t>
</w:r>
<aml:annotation aml:id="0" w:type="Word.Bookmark.End" /> <!-- end结束 -->
</w:p>
ftl文件中常用的控制标签
——判断标签
<#if user.name == "demo" && user.age == 18>
${user.message}
<#else>
${user.errorMessage}
</#if>
——集合List标签
<#list listUser as user>
</#list>
——集合Map取值,直接使用${}
${map.user.name}
——是否存在exists,fil中调用方法方式是?方法名,如:?exists;list?size
<#if user?exists>
</#if> <#assign userNum = listUser?size>
——fit中空格用 表示
——取值赋值
<#assign routeCode="${list.routeCode}">
——数值格式化小数位
${list.finalRate?string('#0.00')}
word文档中使用jfree生成图片,见http://www.cnblogs.com/antlord/p/8325937.html
freemarker导出word文档的更多相关文章
- freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...
- Java使用freemarker导出word文档
通过freemarker,以及JAVA,导出word文档. 共分为三步: 第一步:创建模板文件 第二步:通过JAVA创建返回值. 第三步:执行 分别介绍如下: 第一步: 首先创建word文档,按照想要 ...
- Java用freemarker导出Word 文档
1.用Microsoft Office Word打开word原件: 2.把需要动态修改的内容替换成***,如果有图片,尽量选择较小的图片几十K左右,并调整好位置: 3.另存为,选择保存类型Word 2 ...
- 使用Freemarker导出Word文档(包含图片)代码实现及总结
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- 使用FreeMarker导出word文档(支持导出图片)
一.添加maven依赖,导入FreeMarker所需要的jar包 <dependency> <groupId>org.freemarker</groupId> &l ...
- Java 用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- 【Java】导出word文档之freemarker导出
Java导出word文档有很多种方式,本例介绍freemarker导出,根据现有的word模板进行导出 一.简单导出(不含循环导出) 1.新建一个word文件.如下图: 2.使用word将文件另存为x ...
- 【Java】用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- .NET通过调用Office组件导出Word文档
.NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word ...
随机推荐
- Jquery测试题
一.Jquery测试题 下面哪种不是jquery的选择器?(单选) A.基本选择器 B.后代选择器 C.类选择器 D.进一步选择器 考点:jquery的选择器 (C) 当DOM加载完成后要执行的函数, ...
- webservice入门简介
为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...
- 经典Console案例
/*下面的示例演示 WindowLeft.WindowTop.WindowWidth.WindowHeight.BufferWidth.BufferHeight 和 CursorVisible 属性以 ...
- C#中的var和dynamic
在理解var和dynamic关键字之前,让我们先了解一下编程语言的类别. C#中有两类编程语言: 静态类型语言类别 动态语言类别 静态类型语言 静态类型语言也被称为强类型语言.所谓强类型语言,通俗的讲 ...
- SQL解决"双重职位的查询"
双重身份问题: create table role_tab ( person char(5) not null, role char(1) not null ) insert into role_t ...
- 教你一步步发布一个开源库到 JCenter
今天想来分享下,如何一步步自己发布一个开源库到 JCenter 这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而已,而是尽可能讲清楚,为什么需要有这个步骤,让大伙知其然的同时还知其 ...
- Angular5的new feature
https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced Version 5.0.0 of Angular ...
- Angular集成UEditor
1.Ueditor的集成主要通过把UEditor做成一个Component来实现,先上Component代码: import { AfterContentInit, Component, Input, ...
- Ionic Framework - Getting 'ionic start [appName]' Working Behind a Proxy
This is a quick hacky way to get the ionic start [appName] command working from behind a proxy. I ra ...
- Java虚拟机-类加载
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行检验.转换解析和初始化,最终形成了可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制.在Java语言里,类型的加载.连接和初始化过 ...