通过FreeMarker生成word文档doc(一)

FreeMarker是一款模板引擎基于模板和要改变的数据,生成输出文本(Word、Html)的通用工具。它是一款简单的、专用语言,在模板中,我们只需专注如何显示数据,而在模板外专注于展示的数据。

1、maven包导入

<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>

 2、生成ftl文件模板

  2.1、创建word表格模板

  

  2.2、生成xml文件

    将2.1生成的word文件另存为xml文件,由于生成xml文件格式是行,可在线格式化xml文件。

  2.3、生成ftl文件

    将2.2生成的xml文件内容复制到代码编辑器中,如IDEA,这样做避免在生成word时已处理文件编码格式为UTF-8,然而还会出现乱码。是在本地编译时是其他的编码格式,所以用自己编辑器编写后再用代码读取不会出现乱码。  

<w:body>
                    <w:p w14:paraId="71B7BB9F" w14:textId="6448AFC4" w:rsidR="008959A4" w:rsidRDefault="001A60B2" w:rsidP="001A60B2">
                        <w:pPr>
                            <w:pStyle w:val="1"/>
                            <w:jc w:val="center"/>
                        </w:pPr>
                        <w:r>
                            <w:rPr>
                                <w:rFonts w:hint="eastAsia"/>
                            </w:rPr>
                            <w:t>四性检测报告(${link})</w:t>
                        </w:r>
                    </w:p>
                    <w:tbl>
                        <w:tblPr>
                            <w:tblStyle w:val="a3"/>
                            <w:tblW w:w="8532" w:type="dxa"/>
                            <w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>
                        </w:tblPr>
                        <w:tblGrid>
                            <w:gridCol w:w="1385"/>
                            <w:gridCol w:w="1385"/>
                            <w:gridCol w:w="1385"/>
                            <w:gridCol w:w="240"/>
                            <w:gridCol w:w="1034"/>
                            <w:gridCol w:w="167"/>
                            <w:gridCol w:w="867"/>
                            <w:gridCol w:w="598"/>
                            <w:gridCol w:w="436"/>
                            <w:gridCol w:w="1035"/>
                        </w:tblGrid>
                        <w:tr w:rsidR="001A60B2" w14:paraId="0E72CB28" w14:textId="77777777" w:rsidTr="00975BA5">
                            <w:trPr>
                                <w:trHeight w:val="549"/>
                            </w:trPr>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1347" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="29B97F33" w14:textId="636092AB" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>检验编号</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1348" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="4C519AC6" w14:textId="4350FD2B" w:rsidR="001A60B2" w:rsidRDefault="00E77D46" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r>
                                        <w:t>${inspectionNumber}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1348" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="71AB7033" w14:textId="754CF665" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>检验时间</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1403" w:type="dxa"/>
                                    <w:gridSpan w:val="3"/>
                                </w:tcPr>
                                <w:p w14:paraId="58FC3F4D" w14:textId="76BBE3B7" w:rsidR="001A60B2" w:rsidRDefault="00975BA5" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r>
                                        <w:t>${inspectionTime}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1426" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="601540AA" w14:textId="2CEA1FDD" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>检验人</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1431" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="2A5EB5D7" w14:textId="7E60D814" w:rsidR="001A60B2" w:rsidRDefault="00E77D46" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r>
                                        <w:t>${createName}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                        </w:tr>
                        <w:tr w:rsidR="001A60B2" w14:paraId="351BA912" w14:textId="77777777" w:rsidTr="00975BA5">
                            <w:trPr>
                                <w:trHeight w:val="487"/>
                            </w:trPr>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1347" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="64E86D09" w14:textId="2A0B6707" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>检验总数</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1348" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="43ABD241" w14:textId="137A7868" w:rsidR="001A60B2" w:rsidRPr="00975BA5" w:rsidRDefault="00E77D46" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00975BA5">
                                        <w:t>${inspectionTotal}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1348" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="31ADD53D" w14:textId="222C932F" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>通过数</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1403" w:type="dxa"/>
                                    <w:gridSpan w:val="3"/>
                                </w:tcPr>
                                <w:p w14:paraId="74DA65E4" w14:textId="5C69DA23" w:rsidR="001A60B2" w:rsidRPr="00975BA5" w:rsidRDefault="00E77D46" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00975BA5">
                                        <w:t>${passTotal}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1426" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="7983C8C5" w14:textId="293966A1" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>未通过数</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1431" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="4FBA31F7" w14:textId="63E25EEF" w:rsidR="001A60B2" w:rsidRPr="00975BA5" w:rsidRDefault="00E77D46" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00975BA5">
                                        <w:t>${nopassTotal}</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                        </w:tr>
                        <w:tr w:rsidR="001A60B2" w14:paraId="0886F626" w14:textId="77777777" w:rsidTr="00975BA5">
                            <w:trPr>
                                <w:trHeight w:val="706"/>
                            </w:trPr>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="8303" w:type="dxa"/>
                                    <w:gridSpan w:val="10"/>
                                </w:tcPr>
                                <w:p w14:paraId="04B40095" w14:textId="7C52A6BB" w:rsidR="001A60B2" w:rsidRPr="00AF1AEA" w:rsidRDefault="001A60B2" w:rsidP="00AF1AEA">
                                    <w:pPr>
                                        <w:pStyle w:val="4"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                        </w:rPr>
                                        <w:t>检测概述</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                        </w:tr>
                        <w:tr w:rsidR="00975BA5" w14:paraId="07983F0B" w14:textId="77777777" w:rsidTr="00975BA5">
                            <w:trPr>
                                <w:trHeight w:val="499"/>
                            </w:trPr>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="4277" w:type="dxa"/>
                                    <w:gridSpan w:val="4"/>
                                </w:tcPr>
                                <w:p w14:paraId="3C9DD51D" w14:textId="22BB76CB" w:rsidR="00975BA5" w:rsidRPr="00AF1AEA" w:rsidRDefault="00975BA5" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>档号</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1006" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="1FC31D7C" w14:textId="77777777" w:rsidR="00975BA5" w:rsidRPr="00AF1AEA" w:rsidRDefault="00975BA5" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>真实性</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1007" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="5E5C3851" w14:textId="12E96B39" w:rsidR="00975BA5" w:rsidRPr="00AF1AEA" w:rsidRDefault="00975BA5" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00AF1AEA">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>完整性</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1006" w:type="dxa"/>
                                    <w:gridSpan w:val="2"/>
                                </w:tcPr>
                                <w:p w14:paraId="08DDC354" w14:textId="3E9B1407" w:rsidR="00975BA5" w:rsidRPr="00AF1AEA" w:rsidRDefault="00975BA5" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00975BA5">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>可用性</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                            <w:tc>
                                <w:tcPr>
                                    <w:tcW w:w="1007" w:type="dxa"/>
                                </w:tcPr>
                                <w:p w14:paraId="28D4D265" w14:textId="11FF43EE" w:rsidR="00975BA5" w:rsidRPr="00975BA5" w:rsidRDefault="00975BA5" w:rsidP="00975BA5">
                                    <w:pPr>
                                        <w:spacing w:line="480" w:lineRule="auto"/>
                                        <w:jc w:val="center"/>
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                    </w:pPr>
                                    <w:r w:rsidRPr="00975BA5">
                                        <w:rPr>
                                            <w:rFonts w:hint="eastAsia"/>
                                            <w:b/>
                                            <w:bCs/>
                                        </w:rPr>
                                        <w:t>安全性</w:t>
                                    </w:r>
                                </w:p>
                            </w:tc>
                        </w:tr>
                        <#list summary as work>
                            <w:tr w:rsidR="003B13EC" w14:paraId="716A936D" w14:textId="77777777" w:rsidTr="00975BA5">
                                <w:trPr>
                                    <w:trHeight w:val="499"/>
                                </w:trPr>
                                <w:tc>
                                    <w:tcPr>
                                        <w:tcW w:w="4277" w:type="dxa"/>
                                        <w:gridSpan w:val="4"/>
                                    </w:tcPr>
                                    <w:p w14:paraId="6742E110" w14:textId="3056EBE4" w:rsidR="003B13EC" w:rsidRPr="00A15B12" w:rsidRDefault="00A15B12" w:rsidP="00975BA5">
                                        <w:pPr>
                                            <w:spacing w:line="480" w:lineRule="auto"/>
                                            <w:jc w:val="center"/>
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                        </w:pPr>
                                        <w:r w:rsidRPr="00A15B12">
                                            <w:t>${work.DH}</w:t>
                                        </w:r>
                                    </w:p>
                                </w:tc>
                                <w:tc>
                                    <w:tcPr>
                                        <w:tcW w:w="1006" w:type="dxa"/>
                                    </w:tcPr>
                                    <w:p w14:paraId="0BC0FF94" w14:textId="11A45DAD" w:rsidR="003B13EC" w:rsidRPr="00A15B12" w:rsidRDefault="00A15B12" w:rsidP="00975BA5">
                                        <w:pPr>
                                            <w:spacing w:line="480" w:lineRule="auto"/>
                                            <w:jc w:val="center"/>
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                        </w:pPr>
                                        <w:r w:rsidRPr="00A15B12">
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                            <w:t>${work.authenticity}</w:t>
                                        </w:r>
                                    </w:p>
                                </w:tc>
                                <w:tc>
                                    <w:tcPr>
                                        <w:tcW w:w="1007" w:type="dxa"/>
                                        <w:gridSpan w:val="2"/>
                                    </w:tcPr>
                                    <w:p w14:paraId="06197F4D" w14:textId="69AA7323" w:rsidR="003B13EC" w:rsidRPr="00A15B12" w:rsidRDefault="00A15B12" w:rsidP="00975BA5">
                                        <w:pPr>
                                            <w:spacing w:line="480" w:lineRule="auto"/>
                                            <w:jc w:val="center"/>
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                        </w:pPr>
                                        <w:r w:rsidRPr="00A15B12">
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                            <w:t>${work.integrity}</w:t>
                                        </w:r>
                                    </w:p>
                                </w:tc>
                                <w:tc>
                                    <w:tcPr>
                                        <w:tcW w:w="1006" w:type="dxa"/>
                                        <w:gridSpan w:val="2"/>
                                    </w:tcPr>
                                    <w:p w14:paraId="1B3558BC" w14:textId="4B0FF5E2" w:rsidR="003B13EC" w:rsidRPr="00A15B12" w:rsidRDefault="00A15B12" w:rsidP="00975BA5">
                                        <w:pPr>
                                            <w:spacing w:line="480" w:lineRule="auto"/>
                                            <w:jc w:val="center"/>
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                        </w:pPr>
                                        <w:r w:rsidRPr="00A15B12">
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                            <w:t>${work.availability}</w:t>
                                        </w:r>
                                    </w:p>
                                </w:tc>
                                <w:tc>
                                    <w:tcPr>
                                        <w:tcW w:w="1007" w:type="dxa"/>
                                    </w:tcPr>
                                    <w:p w14:paraId="6899DAC5" w14:textId="3E58B5B8" w:rsidR="003B13EC" w:rsidRPr="00A15B12" w:rsidRDefault="00A15B12" w:rsidP="00975BA5">
                                        <w:pPr>
                                            <w:spacing w:line="480" w:lineRule="auto"/>
                                            <w:jc w:val="center"/>
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                        </w:pPr>
                                        <w:r w:rsidRPr="00A15B12">
                                            <w:rPr>
                                                <w:rFonts w:hint="eastAsia"/>
                                            </w:rPr>
                                            <w:t>${work.security}</w:t>
                                        </w:r>
                                    </w:p>
                                </w:tc>
                            </w:tr>
                        </#list>
                    </w:tbl>
                    <w:p w14:paraId="538BDBA0" w14:textId="77777777" w:rsidR="001A60B2" w:rsidRPr="001A60B2" w:rsidRDefault="001A60B2" w:rsidP="001A60B2">
                        <w:pPr>
                            <w:rPr>
                                <w:rFonts w:hint="eastAsia"/>
                            </w:rPr>
                        </w:pPr>
                    </w:p>
                    <w:sectPr w:rsidR="001A60B2" w:rsidRPr="001A60B2">
                        <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:linePitch="312"/>
                    </w:sectPr>
                </w:body>

其中list集合遍历:<#list workof as work></#list>

3、Java方法生成doc文件

public void testReportSummary(String monitoringZongId){
        Map<String,Object> map = new HashMap<>();
        List<Map<String,String>> mapList = detectionMapper.selectMonitoringZong(monitoringZongId);
        List<Map<String,String>> mapListSummary = detectionMapper.selectMonitoringSummary(monitoringZongId);
        map.put("link", mapList.get(0).get("link"));
        map.put("inspectionNumber", mapList.get(0).get("inspectionNumber"));
        map.put("inspectionTime", mapList.get(0).get("inspectionTime"));
        map.put("createName", mapList.get(0).get("createName"));
        map.put("inspectionTotal", mapList.get(0).get("inspectionTotal"));
        map.put("passTotal", mapList.get(0).get("passTotal"));
        map.put("nopassTotal", mapList.get(0).get("nopassTotal"));
     /*组装循环部分list*/ List
<Map<String,String>> listSummary = new ArrayList<>(); for (Map<String,String> map2 : mapListSummary){ Map<String,String> map1 = new HashMap<>(); map1.put("DH", map2.get("dh")); map1.put("authenticity", map2.get("authenticity")); map1.put("security", map2.get("security")); map1.put("integrity", map2.get("integrity")); map1.put("availability", map2.get("availability")); listSummary.add(map1); } map.put("summary", listSummary); try { //ToWord.exportMillCertificateWord(response, map); DocumentHandler documentHandler = new DocumentHandler(); documentHandler.createDoc(map, detectionFilePath, detectionFileName, generatePath + File.separator + mapList.get(0).get("inspectionNumber") + ".doc"); } catch (Exception e) { e.printStackTrace(); } }

 

public class DocumentHandler {
    private Configuration configuration = null;
    public DocumentHandler() {
        configuration = new Configuration(new Version("2.3.0"));
        configuration.setDefaultEncoding("utf-8");
    }

    public void createDoc(Map<String,Object> map, String detectionFilePath, String detectionFileName, String generatePath) {
        Template template = null;
        try {
            configuration.setDirectoryForTemplateLoading(new File(detectionFilePath));
            template = configuration.getTemplate(detectionFileName);
            /*configuration已经设置了编码格式*/
       //template.setEncoding(
"utf-8"); } catch (IOException e) { e.printStackTrace(); } // 输出文档路径及名称 File outFile = new File(generatePath); Writer out = null; try { out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(outFile), "utf-8")); } catch (Exception e1) { e1.printStackTrace(); } try { template.process(map, out); out.close(); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }

5、生成结果

 

posted @ 2021-12-25 15:07  曾经已是追忆  阅读(623)  评论(0编辑  收藏  举报