Java通过freemaker实现生成word文件,内容填充

目录

1、添加依赖

2、新建一个word文件如下:

3、文件另存为xml格式,然后再保存为ftl格式

4、实际下载代码

5、生成的文件内容 

6、生成文件到本地


1、添加依赖

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

2、新建一个word文件如下:

3、文件另存为xml格式,然后再保存为ftl格式

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"  xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve" xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData">
	<o:DocumentProperties>
		<o:Author>123</o:Author>
		<o:LastAuthor>和自己对话</o:LastAuthor>
		<o:Created>2022-07-01T02:43:26Z</o:Created>
		<o:LastSaved>2022-07-01T02:47:05Z</o:LastSaved>
		<o:TotalTime>1440</o:TotalTime>
		<o:Pages>1</o:Pages>
		<o:Words>59</o:Words>
		<o:Characters>103</o:Characters>
		<o:Lines>0</o:Lines>
		<o:Paragraphs>0</o:Paragraphs>
		<o:CharactersWithSpaces>139</o:CharactersWithSpaces>
		<o:Version>14</o:Version>
	</o:DocumentProperties>
	<o:CustomDocumentProperties>
		<o:KSOProductBuildVer dt:dt="string">2052-11.1.0.11753</o:KSOProductBuildVer>
		<o:ICV dt:dt="string">4D143732E8164FA1BD914EEF8F0F0106</o:ICV>
	</o:CustomDocumentProperties>
	<w:fonts>
		<w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
		<w:font w:name="Times New Roman">
			<w:panose-1 w:val="02020603050405020304"/>
			<w:charset w:val="00"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
		</w:font>
		<w:font w:name="宋体">
			<w:panose-1 w:val="02010600030101010101"/>
			<w:charset w:val="86"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="Wingdings">
			<w:panose-1 w:val="05000000000000000000"/>
			<w:charset w:val="02"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="Arial">
			<w:panose-1 w:val="020B0604020202020204"/>
			<w:charset w:val="01"/>
			<w:family w:val="SWiss"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
		</w:font>
		<w:font w:name="黑体">
			<w:panose-1 w:val="02010609060101010101"/>
			<w:charset w:val="86"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="Courier New">
			<w:panose-1 w:val="02070309020205020404"/>
			<w:charset w:val="01"/>
			<w:family w:val="Modern"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
		</w:font>
		<w:font w:name="Symbol">
			<w:panose-1 w:val="05050102010706020507"/>
			<w:charset w:val="02"/>
			<w:family w:val="Roman"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="Calibri">
			<w:panose-1 w:val="020F0502020204030204"/>
			<w:charset w:val="00"/>
			<w:family w:val="SWiss"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="仿宋">
			<w:panose-1 w:val="02010609060101010101"/>
			<w:charset w:val="86"/>
			<w:family w:val="Modern"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="微软雅黑">
			<w:panose-1 w:val="020B0503020204020204"/>
			<w:charset w:val="86"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="80000287" w:usb-1="2ACF3C50" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="0004001F" w:csb-1="00000000"/>
		</w:font>
		<w:font w:name="Tahoma">
			<w:panose-1 w:val="020B0604030504040204"/>
			<w:charset w:val="00"/>
			<w:family w:val="Auto"/>
			<w:pitch w:val="Default"/>
			<w:sig w:usb-0="E1002EFF" w:usb-1="C000605B" w:usb-2="00000029" w:usb-3="00000000" w:csb-0="200101FF" w:csb-1="20280000"/>
		</w:font>
	</w:fonts>
	<w:styles>
		<w:latentStyles w:defLockedState="off" w:latentStyleCount="260">
			<w:lsdException w:name="Normal"/>
			<w:lsdException w:name="heading 1"/>
			<w:lsdException w:name="heading 2"/>
			<w:lsdException w:name="heading 3"/>
			<w:lsdException w:name="heading 4"/>
			<w:lsdException w:name="heading 5"/>
			<w:lsdException w:name="heading 6"/>
			<w:lsdException w:name="heading 7"/>
			<w:lsdException w:name="heading 8"/>
			<w:lsdException w:name="heading 9"/>
			<w:lsdException w:name="index 1"/>
			<w:lsdException w:name="index 2"/>
			<w:lsdException w:name="index 3"/>
			<w:lsdException w:name="index 4"/>
			<w:lsdException w:name="index 5"/>
			<w:lsdException w:name="index 6"/>
			<w:lsdException w:name="index 7"/>
			<w:lsdException w:name="index 8"/>
			<w:lsdException w:name="index 9"/>
			<w:lsdException w:name="toc 1"/>
			<w:lsdException w:name="toc 2"/>
			<w:lsdException w:name="toc 3"/>
			<w:lsdException w:name="toc 4"/>
			<w:lsdException w:name="toc 5"/>
			<w:lsdException w:name="toc 6"/>
			<w:lsdException w:name="toc 7"/>
			<w:lsdException w:name="toc 8"/>
			<w:lsdException w:name="toc 9"/>
			<w:lsdException w:name="Normal Indent"/>
			<w:lsdException w:name="footnote text"/>
			<w:lsdException w:name="annotation text"/>
			<w:lsdException w:name="header"/>
			<w:lsdException w:name="footer"/>
			<w:lsdException w:name="index heading"/>
			<w:lsdException w:name="caption"/>
			<w:lsdException w:name="table of figures"/>
			<w:lsdException w:name="envelope address"/>
			<w:lsdException w:name="envelope return"/>
			<w:lsdException w:name="footnote reference"/>
			<w:lsdException w:name="annotation reference"/>
			<w:lsdException w:name="line number"/>
			<w:lsdException w:name="page number"/>
			<w:lsdException w:name="endnote reference"/>
			<w:lsdException w:name="endnote text"/>
			<w:lsdException w:name="table of authorities"/>
			<w:lsdException w:name="macro"/>
			<w:lsdException w:name="toa heading"/>
			<w:lsdException w:name="List"/>
			<w:lsdException w:name="List Bullet"/>
			<w:lsdException w:name="List Number"/>
			<w:lsdException w:name="List 2"/>
			<w:lsdException w:name="List 3"/>
			<w:lsdException w:name="List 4"/>
			<w:lsdException w:name="List 5"/>
			<w:lsdException w:name="List Bullet 2"/>
			<w:lsdException w:name="List Bullet 3"/>
			<w:lsdException w:name="List Bullet 4"/>
			<w:lsdException w:name="List Bullet 5"/>
			<w:lsdException w:name="List Number 2"/>
			<w:lsdException w:name="List Number 3"/>
			<w:lsdException w:name="List Number 4"/>
			<w:lsdException w:name="List Number 5"/>
			<w:lsdException w:name="Title"/>
			<w:lsdException w:name="Closing"/>
			<w:lsdException w:name="Signature"/>
			<w:lsdException w:name="Default Paragraph Font"/>
			<w:lsdException w:name="Body Text"/>
			<w:lsdException w:name="Body Text Indent"/>
			<w:lsdException w:name="List Continue"/>
			<w:lsdException w:name="List Continue 2"/>
			<w:lsdException w:name="List Continue 3"/>
			<w:lsdException w:name="List Continue 4"/>
			<w:lsdException w:name="List Continue 5"/>
			<w:lsdException w:name="Message Header"/>
			<w:lsdException w:name="Subtitle"/>
			<w:lsdException w:name="Salutation"/>
			<w:lsdException w:name="Date"/>
			<w:lsdException w:name="Body Text First Indent"/>
			<w:lsdException w:name="Body Text First Indent 2"/>
			<w:lsdException w:name="Note Heading"/>
			<w:lsdException w:name="Body Text 2"/>
			<w:lsdException w:name="Body Text 3"/>
			<w:lsdException w:name="Body Text Indent 2"/>
			<w:lsdException w:name="Body Text Indent 3"/>
			<w:lsdException w:name="Block Text"/>
			<w:lsdException w:name="Hyperlink"/>
			<w:lsdException w:name="FollowedHyperlink"/>
			<w:lsdException w:name="Strong"/>
			<w:lsdException w:name="Emphasis"/>
			<w:lsdException w:name="Document Map"/>
			<w:lsdException w:name="Plain Text"/>
			<w:lsdException w:name="E-mail Signature"/>
			<w:lsdException w:name="Normal (Web)"/>
			<w:lsdException w:name="HTML Acronym"/>
			<w:lsdException w:name="HTML Address"/>
			<w:lsdException w:name="HTML Cite"/>
			<w:lsdException w:name="HTML Code"/>
			<w:lsdException w:name="HTML Definition"/>
			<w:lsdException w:name="HTML Keyboard"/>
			<w:lsdException w:name="HTML Preformatted"/>
			<w:lsdException w:name="HTML Sample"/>
			<w:lsdException w:name="HTML Typewriter"/>
			<w:lsdException w:name="HTML Variable"/>
			<w:lsdException w:name="Normal Table"/>
			<w:lsdException w:name="annotation subject"/>
			<w:lsdException w:name="Table Simple 1"/>
			<w:lsdException w:name="Table Simple 2"/>
			<w:lsdException w:name="Table Simple 3"/>
			<w:lsdException w:name="Table Classic 1"/>
			<w:lsdException w:name="Table Classic 2"/>
			<w:lsdException w:name="Table Classic 3"/>
			<w:lsdException w:name="Table Classic 4"/>
			<w:lsdException w:name="Table Colorful 1"/>
			<w:lsdException w:name="Table Colorful 2"/>
			<w:lsdException w:name="Table Colorful 3"/>
			<w:lsdException w:name="Table Columns 1"/>
			<w:lsdException w:name="Table Columns 2"/>
			<w:lsdException w:name="Table Columns 3"/>
			<w:lsdException w:name="Table Columns 4"/>
			<w:lsdException w:name="Table Columns 5"/>
			<w:lsdException w:name="Table Grid 1"/>
			<w:lsdException w:name="Table Grid 2"/>
			<w:lsdException w:name="Table Grid 3"/>
			<w:lsdException w:name="Table Grid 4"/>
			<w:lsdException w:name="Table Grid 5"/>
			<w:lsdException w:name="Table Grid 6"/>
			<w:lsdException w:name="Table Grid 7"/>
			<w:lsdException w:name="Table Grid 8"/>
			<w:lsdException w:name="Table List 1"/>
			<w:lsdException w:name="Table List 2"/>
			<w:lsdException w:name="Table List 3"/>
			<w:lsdException w:name="Table List 4"/>
			<w:lsdException w:name="Table List 5"/>
			<w:lsdException w:name="Table List 6"/>
			<w:lsdException w:name="Table List 7"/>
			<w:lsdException w:name="Table List 8"/>
			<w:lsdException w:name="Table 3D effects 1"/>
			<w:lsdException w:name="Table 3D effects 2"/>
			<w:lsdException w:name="Table 3D effects 3"/>
			<w:lsdException w:name="Table Contemporary"/>
			<w:lsdException w:name="Table Elegant"/>
			<w:lsdException w:name="Table Professional"/>
			<w:lsdException w:name="Table Subtle 1"/>
			<w:lsdException w:name="Table Subtle 2"/>
			<w:lsdException w:name="Table Web 1"/>
			<w:lsdException w:name="Table Web 2"/>
			<w:lsdException w:name="Table Web 3"/>
			<w:lsdException w:name="Balloon Text"/>
			<w:lsdException w:name="Table Grid"/>
			<w:lsdException w:name="Table Theme"/>
			<w:lsdException w:name="Light Shading"/>
			<w:lsdException w:name="Light List"/>
			<w:lsdException w:name="Light Grid"/>
			<w:lsdException w:name="Medium Shading 1"/>
			<w:lsdException w:name="Medium Shading 2"/>
			<w:lsdException w:name="Medium List 1"/>
			<w:lsdException w:name="Medium List 2"/>
			<w:lsdException w:name="Medium Grid 1"/>
			<w:lsdException w:name="Medium Grid 2"/>
			<w:lsdException w:name="Medium Grid 3"/>
			<w:lsdException w:name="Dark List"/>
			<w:lsdException w:name="Colorful Shading"/>
			<w:lsdException w:name="Colorful List"/>
			<w:lsdException w:name="Colorful Grid"/>
			<w:lsdException w:name="Light Shading Accent 1"/>
			<w:lsdException w:name="Light List Accent 1"/>
			<w:lsdException w:name="Light Grid Accent 1"/>
			<w:lsdException w:name="Medium Shading 1 Accent 1"/>
			<w:lsdException w:name="Medium Shading 2 Accent 1"/>
			<w:lsdException w:name="Medium List 1 Accent 1"/>
			<w:lsdException w:name="Medium List 2 Accent 1"/>
			<w:lsdException w:name="Medium Grid 1 Accent 1"/>
			<w:lsdException w:name="Medium Grid 2 Accent 1"/>
			<w:lsdException w:name="Medium Grid 3 Accent 1"/>
			<w:lsdException w:name="Dark List Accent 1"/>
			<w:lsdException w:name="Colorful Shading Accent 1"/>
			<w:lsdException w:name="Colorful List Accent 1"/>
			<w:lsdException w:name="Colorful Grid Accent 1"/>
			<w:lsdException w:name="Light Shading Accent 2"/>
			<w:lsdException w:name="Light List Accent 2"/>
			<w:lsdException w:name="Light Grid Accent 2"/>
			<w:lsdException w:name="Medium Shading 1 Accent 2"/>
			<w:lsdException w:name="Medium Shading 2 Accent 2"/>
			<w:lsdException w:name="Medium List 1 Accent 2"/>
			<w:lsdException w:name="Medium List 2 Accent 2"/>
			<w:lsdException w:name="Medium Grid 1 Accent 2"/>
			<w:lsdException w:name="Medium Grid 2 Accent 2"/>
			<w:lsdException w:name="Medium Grid 3 Accent 2"/>
			<w:lsdException w:name="Dark List Accent 2"/>
			<w:lsdException w:name="Colorful Shading Accent 2"/>
			<w:lsdException w:name="Colorful List Accent 2"/>
			<w:lsdException w:name="Colorful Grid Accent 2"/>
			<w:lsdException w:name="Light Shading Accent 3"/>
			<w:lsdException w:name="Light List Accent 3"/>
			<w:lsdException w:name="Light Grid Accent 3"/>
			<w:lsdException w:name="Medium Shading 1 Accent 3"/>
			<w:lsdException w:name="Medium Shading 2 Accent 3"/>
			<w:lsdException w:name="Medium List 1 Accent 3"/>
			<w:lsdException w:name="Medium List 2 Accent 3"/>
			<w:lsdException w:name="Medium Grid 1 Accent 3"/>
			<w:lsdException w:name="Medium Grid 2 Accent 3"/>
			<w:lsdException w:name="Medium Grid 3 Accent 3"/>
			<w:lsdException w:name="Dark List Accent 3"/>
			<w:lsdException w:name="Colorful Shading Accent 3"/>
			<w:lsdException w:name="Colorful List Accent 3"/>
			<w:lsdException w:name="Colorful Grid Accent 3"/>
			<w:lsdException w:name="Light Shading Accent 4"/>
			<w:lsdException w:name="Light List Accent 4"/>
			<w:lsdException w:name="Light Grid Accent 4"/>
			<w:lsdException w:name="Medium Shading 1 Accent 4"/>
			<w:lsdException w:name="Medium Shading 2 Accent 4"/>
			<w:lsdException w:name="Medium List 1 Accent 4"/>
			<w:lsdException w:name="Medium List 2 Accent 4"/>
			<w:lsdException w:name="Medium Grid 1 Accent 4"/>
			<w:lsdException w:name="Medium Grid 2 Accent 4"/>
			<w:lsdException w:name="Medium Grid 3 Accent 4"/>
			<w:lsdException w:name="Dark List Accent 4"/>
			<w:lsdException w:name="Colorful Shading Accent 4"/>
			<w:lsdException w:name="Colorful List Accent 4"/>
			<w:lsdException w:name="Colorful Grid Accent 4"/>
			<w:lsdException w:name="Light Shading Accent 5"/>
			<w:lsdException w:name="Light List Accent 5"/>
			<w:lsdException w:name="Light Grid Accent 5"/>
			<w:lsdException w:name="Medium Shading 1 Accent 5"/>
			<w:lsdException w:name="Medium Shading 2 Accent 5"/>
			<w:lsdException w:name="Medium List 1 Accent 5"/>
			<w:lsdException w:name="Medium List 2 Accent 5"/>
			<w:lsdException w:name="Medium Grid 1 Accent 5"/>
			<w:lsdException w:name="Medium Grid 2 Accent 5"/>
			<w:lsdException w:name="Medium Grid 3 Accent 5"/>
			<w:lsdException w:name="Dark List Accent 5"/>
			<w:lsdException w:name="Colorful Shading Accent 5"/>
			<w:lsdException w:name="Colorful List Accent 5"/>
			<w:lsdException w:name="Colorful Grid Accent 5"/>
			<w:lsdException w:name="Light Shading Accent 6"/>
			<w:lsdException w:name="Light List Accent 6"/>
			<w:lsdException w:name="Light Grid Accent 6"/>
			<w:lsdException w:name="Medium Shading 1 Accent 6"/>
			<w:lsdException w:name="Medium Shading 2 Accent 6"/>
			<w:lsdException w:name="Medium List 1 Accent 6"/>
			<w:lsdException w:name="Medium List 2 Accent 6"/>
			<w:lsdException w:name="Medium Grid 1 Accent 6"/>
			<w:lsdException w:name="Medium Grid 2 Accent 6"/>
			<w:lsdException w:name="Medium Grid 3 Accent 6"/>
			<w:lsdException w:name="Dark List Accent 6"/>
			<w:lsdException w:name="Colorful Shading Accent 6"/>
			<w:lsdException w:name="Colorful List Accent 6"/>
			<w:lsdException w:name="Colorful Grid Accent 6"/>
		</w:latentStyles>
		<w:style w:type="paragraph" w:styleId="a1" w:default="on">
			<w:name w:val="Normal"/>
			<w:pPr>
				<w:widowControl w:val="off"/>
				<w:jc w:val="both"/>
			</w:pPr>
			<w:rPr>
				<w:rFonts w:ascii="Calibri" w:h-ansi="Calibri" w:fareast="宋体" w:cs="Times New Roman" w:hint="default"/>
				<w:kern w:val="2"/>
				<w:sz w:val="21"/>
				<w:sz-cs w:val="24"/>
				<w:lang w:val="EN-US" w:fareast="ZH-CN" w:bidi="AR-SA"/>
			</w:rPr>
		</w:style>
		<w:style w:type="character" w:styleId="a3" w:default="on">
			<w:name w:val="Default Paragraph Font"/>
			<w:semiHidden/>
		</w:style>
		<w:style w:type="table" w:styleId="a2" w:default="on">
			<w:name w:val="Normal Table"/>
			<w:semiHidden/>
			<w:tblPr>
				<w:tblCellMar>
					<w:top w:w="0" w:type="dxa"/>
					<w:left w:w="108" w:type="dxa"/>
					<w:bottom w:w="0" w:type="dxa"/>
					<w:right w:w="108" w:type="dxa"/>
				</w:tblCellMar>
			</w:tblPr>
		</w:style>
	</w:styles>
	<w:bgPict>
		<w:background/>
		<v:background id="_x0000_s1025">
			<v:fill on="f" focussize="0,0"/>
		</v:background>
	</w:bgPict>
	<w:docPr>
		<w:view w:val="print"/>
		<w:zoom w:percent="100"/>
		<w:characterSpacingControl w:val="CompressPunctuation"/>
		<w:documentProtection w:enforcement="off"/>
		<w:punctuationKerning/>
		<w:doNotEmbedSystemFonts/>
		<w:bordersDontSurroundHeader/>
		<w:bordersDontSurroundFooter/>
		<w:defaultTabStop w:val="420"/>
		<w:drawingGridVerticalSpacing w:val="156"/>
		<w:displayHorizontalDrawingGridEvery w:val="0"/>
		<w:displayVerticalDrawingGridEvery w:val="2"/>
		<w:compat>
			<w:adjustLineHeightInTable/>
			<w:ulTrailSpace/>
			<w:doNotExpandShiftReturn/>
			<w:balanceSingleByteDoubleByteWidth/>
			<w:useFELayout/>
			<w:spaceForUL/>
			<w:wrapTextWithPunct/>
			<w:breakWrappedTables/>
			<w:useAsianBreakRules/>
			<w:dontGrowAutofit/>
			<w:useFELayout/>
		</w:compat>
	</w:docPr>
	<w:body>
		<wx:sect>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="center"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b/>
						<w:b-cs/>
						<w:sz w:val="32"/>
						<w:sz-cs w:val="28"/>
					</w:rPr>
				</w:pPr>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b/>
						<w:b-cs/>
						<w:sz w:val="32"/>
						<w:sz-cs w:val="28"/>
					</w:rPr>
					<w:t>申请表</w:t>
				</w:r>
			</w:p>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="both"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
				</w:pPr>
			</w:p>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="both"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
				</w:pPr>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
					<w:t>申请人</w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
					<w:t>:(${name!''})                 </w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
					<w:t>申请部门</w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
					<w:t>:(${deptName!''})</w:t>
				</w:r>
			</w:p>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="both"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
				</w:pPr>
			</w:p>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="both"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
				</w:pPr>
				<w:r>
					<w:rPr>
						<w:rFonts w:hint="fareast"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="32"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
					<w:t>绑定</w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="32"/>
						<w:lang/>
					</w:rPr>
					<w:t>IP</w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="32"/>
						<w:lang/>
					</w:rPr>
					<w:t>:(${ip!''})                   </w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
					<w:t>申请日期</w:t>
				</w:r>
				<w:r>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="default"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="24"/>
						<w:sz-cs w:val="22"/>
						<w:lang/>
					</w:rPr>
					<w:t>:(${applyTime!''})</w:t>
				</w:r>
			</w:p>
			<w:p>
				<w:pPr>
					<w:tabs>
						<w:tab w:val="left" w:pos="1648"/>
					</w:tabs>
					<w:jc w:val="both"/>
					<w:rPr>
						<w:rFonts w:ascii="宋体" w:h-ansi="宋体" w:fareast="宋体" w:cs="宋体" w:hint="fareast"/>
						<w:b w:val="off"/>
						<w:b-cs w:val="off"/>
						<w:sz w:val="21"/>
						<w:sz-cs w:val="20"/>
						<w:lang w:val="EN-US"/>
					</w:rPr>
				</w:pPr>
			</w:p>
			<w:tbl>
				<w:tblPr>
					<w:tblW w:w="0" w:type="auto"/>
					<w:jc w:val="center"/>
					<w:tblInd w:w="0" w:type="dxa"/>
					<w:tblLayout w:type="Fixed"/>
					<w:tblCellMar>
						<w:top w:w="0" w:type="dxa"/>
						<w:left w:w="10" w:type="dxa"/>
						<w:bottom w:w="0" w:type="dxa"/>
						<w:right w:w="10" w:type="dxa"/>
					</w:tblCellMar>
				</w:tblPr>
				<w:tblGrid>
					<w:gridCol w:w="3261"/>
					<w:gridCol w:w="2852"/>
					<w:gridCol w:w="2409"/>
				</w:tblGrid>
				<w:tr>
					<w:tblPrEx>
						<w:tblCellMar>
							<w:top w:w="0" w:type="dxa"/>
							<w:left w:w="10" w:type="dxa"/>
							<w:bottom w:w="0" w:type="dxa"/>
							<w:right w:w="10" w:type="dxa"/>
						</w:tblCellMar>
					</w:tblPrEx>
					<w:trPr>
						<w:trHeight w:val="607" w:h-rule="atLeast"/>
						<w:jc w:val="center"/>
					</w:trPr>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="3261" w:type="dxa"/>
							<w:tcBorders>
								<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
								<w:left w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
								<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:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="center"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:cs="宋体" w:hint="fareast"/>
									<w:b/>
									<w:sz w:val="24"/>
									<w:lang w:val="EN-US"/>
								</w:rPr>
								<w:t>申请数据名称</w:t>
							</w:r>
						</w:p>
					</w:tc>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="2852" w:type="dxa"/>
							<w:tcBorders>
								<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
								<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:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="top"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:cs="宋体" w:hint="fareast"/>
									<w:b/>
									<w:sz w:val="24"/>
									<w:lang w:val="EN-US"/>
								</w:rPr>
								<w:t>数据类型</w:t>
							</w:r>
						</w:p>
					</w:tc>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="2409" w:type="dxa"/>
							<w:tcBorders>
								<w:top w:val="single" w:sz="4" wx:bdrwidth="10" w:space="0" w:color="000000"/>
								<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="000000"/>
							</w:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="top"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:cs="宋体" w:hint="fareast"/>
									<w:b/>
									<w:sz w:val="24"/>
									<w:lang w:val="EN-US"/>
								</w:rPr>
								<w:t>使用期限</w:t>
							</w:r>
						</w:p>
					</w:tc>
				</w:tr>
				<w:tr>
					<w:tblPrEx>
						<w:tblCellMar>
							<w:top w:w="0" w:type="dxa"/>
							<w:left w:w="10" w:type="dxa"/>
							<w:bottom w:w="0" w:type="dxa"/>
							<w:right w:w="10" w:type="dxa"/>
						</w:tblCellMar>
					</w:tblPrEx>
					<w:trPr>
						<w:trHeight w:val="287" w:h-rule="atLeast"/>
						<w:jc w:val="center"/>
					</w:trPr>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="3261" w:type="dxa"/>
							<w:tcBorders>
								<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="000000"/>
								<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:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="center"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
								<w:t>资源名称1</w:t>
							</w:r>
						</w:p>
					</w:tc>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="2852" w:type="dxa"/>
							<w:tcBorders>
								<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:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="top"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="default"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
								<w:t>共享数据</w:t>
							</w:r>
						</w:p>
					</w:tc>
					<w:tc>
						<w:tcPr>
							<w:tcW w:w="2409" w:type="dxa"/>
							<w:tcBorders>
								<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="000000"/>
							</w:tcBorders>
							<w:shd w:val="clear" w:color="000000" w:fill="FFFFFF"/>
							<w:noWrap w:val="0"/>
							<w:tcMar>
								<w:left w:w="108" w:type="dxa"/>
								<w:right w:w="108" w:type="dxa"/>
							</w:tcMar>
							<w:vAlign w:val="top"/>
						</w:tcPr>
						<w:p>
							<w:pPr>
								<w:tabs>
									<w:tab w:val="left" w:pos="1648"/>
								</w:tabs>
								<w:spacing w:line="300" w:line-rule="auto"/>
								<w:jc w:val="center"/>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
							</w:pPr>
							<w:r>
								<w:rPr>
									<w:rFonts w:ascii="仿宋" w:h-ansi="仿宋" w:fareast="仿宋" w:hint="fareast"/>
									<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
								</w:rPr>
								<w:t>一个月</w:t>
							</w:r>
						</w:p>
					</w:tc>
				</w:tr>
			</w:tbl>
			<w:p/>
			<w:sectPr>
				<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="720"/>
				<w:docGrid w:type="lines" w:line-pitch="312"/>
			</w:sectPr>
		</wx:sect>
	</w:body>
</w:wordDocument>

4、实际下载代码

package com.shucha.deveiface.web.controller;

import com.sdy.common.model.BizException;
import com.sdy.common.utils.Assert;
import com.sdy.common.utils.DateUtil;
import com.sdy.mvc.utils.JsonUtil;
import freemarker.template.Configuration;
import freemarker.template.Template;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.*;

/**
 * @author tqf
 * @Description freemaker生成文件
 * @Version 1.0
 * @since 2022-07-01 10:39
 */
@RestController
@Slf4j
@RequestMapping("/freeMaker")
public class FreeMakerController {

    @ApiOperation(value = "点击下载申请表")
    @GetMapping("/downloadResWord")
    public void downloadResWord(HttpServletResponse response) throws BizException {
        String dataType[] = {"共享数据","批量数据","禁止共享"};
        // 构造数据
        Map<String, Object> map = new HashMap<>();
        map.put("name","张三");
        map.put("deptName","监管部门");
        map.put("ip","192.168.0.225");
        map.put("applyTime", DateUtil.dateToString(new Date(), DateUtil.DATETIME_FORMAT));
        // 列表数据构造
        List<Map<String, Object>> dataList = new ArrayList<>();
        for (int j=0;j<3;j++) {
            Map<String, Object> data = new HashMap<>();
            data.put("resName","资源名称"+j);
            data.put("dataType",dataType[j]);
            data.put("useTerm",j+1 + "个月");
            dataList.add(data);
        }
        map.put("dataList", dataList);
        try {
                @SuppressWarnings("deprecation")
                Configuration configuration = new Configuration();
                configuration.setDefaultEncoding("utf-8");
                configuration.setClassForTemplateLoading(this.getClass(), "/file");
                //文件名,获取模板
                response.setContentType("application/msword");
                String fileName = "生成的文件.doc";
                response.setHeader("Content-Disposition", "attachment;fileName="
                        + new String(fileName.getBytes("GBK"), "ISO-8859-1"));
                response.setCharacterEncoding("utf-8");
                PrintWriter out = response.getWriter();
                Template template = configuration.getTemplate("生成文件模板.ftl", "utf-8");
                template.process(map, out);
                out.flush();
                out.close();
        } catch (Exception e) {
            e.printStackTrace();
            log.error("生成申请表文件异常{}", e.getMessage());
            throw new BizException("生成申请表文件异常!");
        }

    }
}

5、生成的文件内容 

6、生成文件到本地

package com.shucha.deveiface.biz.test;

import com.sdy.common.utils.DateUtil;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.extern.slf4j.Slf4j;

import java.io.*;
import java.util.*;

/**
 * @author tqf
 * @Description
 * @Version 1.0
 * @since 2022-07-01 15:23
 */
@Slf4j
public class createFileWord {
    public static void main(String[] args) throws IOException {
        createFileWord();
    }

    public static void createFileWord() throws IOException {
        String dataType[] = {"共享数据","批量数据","禁止共享"};
        // 构造数据
        Map<String, Object> map = new HashMap<>();
        map.put("name","张三");
        map.put("deptName","监管部门");
        map.put("ip","192.168.0.225");
        map.put("applyTime", DateUtil.dateToString(new Date(), DateUtil.DATETIME_FORMAT));
        // 列表数据构造
        List<Map<String, Object>> dataList = new ArrayList<>();
        for (int j=0;j<3;j++) {
            Map<String, Object> data = new HashMap<>();
            data.put("resName","资源名称"+j);
            data.put("dataType",dataType[j]);
            data.put("useTerm",j+1 + "个月");
            dataList.add(data);
        }
        map.put("dataList", dataList);
        @SuppressWarnings("deprecation")
        Configuration configuration = new Configuration();
        // configuration.setClassForTemplateLoading(createFileWord.class, "/file");
        configuration.setDirectoryForTemplateLoading(new File("D:/123/template"));
        try {
            Template t = configuration.getTemplate("生成文件模板.ftl");
            //导出文件
            File outFile = new File("D:/" + System.currentTimeMillis()+ ".doc");
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile)));
            t.process(map, out);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("生成文件异常!");
        }
    }
}
posted @ 2022-08-04 19:11  码奴生来只知道前进~  阅读(11)  评论(0编辑  收藏  举报