700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > freemarker导出word文档

freemarker导出word文档

时间:2020-03-12 12:23:12

相关推荐

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=0classic_compatible=truewhitespace_stripping=trueoutput_encoding=utf-8locale=zh_CNdefault_encoding=utf-8url_escaping_charset=utf-8date_format=yyyy-MM-ddtime_format=HH:mm:Ssdatetime_format=yyyy-MM-ddnumber_format=\#0.\#\#\#\#\#boolean_format=true,falsetag_syntax=auto_detecttemplate_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文档会比较大,去/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 交通量从-的流量统计图”

<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>&#x0020; </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中空格用&#x0020;表示

——取值赋值

<#assign routeCode="${list.routeCode}">

——数值格式化小数位

${list.finalRate?string('#0.00')}

word文档中使用jfree生成图片,见/antlord/p/8325937.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。