SpringBoot集成Freemarker,并使用API生成word文件

Spring Boot 集成 Freemarker

spring boot 集成 freemarker 的简单使用

使用freemarker生成word文件

1. spring boot集成freemarker

1.1 添加依赖

maven项目 pom.xml

<!-- spring boot web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- spring boot 集成 freemarker -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
1.2 配置freemarker

application.yml文件

server:
  port: 8080
  servlet:
    context-path: /
    
#freemarker的配置
spring:
  freemarker:
    cache: false
    charset: UTF-8
    content-type: text/html; charset=utf-8
    prefix: /
    suffix: .html

freemarker 默认模板文件后缀为 .ftl,并且默认的模板存放路径为:resources/templates


1.3 控制器访问页面
@Controller
public class IndexController {
   
	
	@GetMapping("/index")
	public ModelAndView index() {
   
		
		ModelAndView view = new ModelAndView("index");
		view.addObject("user", "Tom");
		return view ;
	}
}

1.4 页面

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
	INDEX | templates index
	<h3>hello ${user}</h3>
</body>
</html>

路径在:resources/template/index.html


1.5 访问请求
http://localhost:8080/index

界面展示如下:


在这里插入图片描述



2. freemarker实现生成word文件


freemarker通过模板可以生成work文件
2.1 制作word模板

首先使用word编辑工具(office / WPS),新建word模板,根据实际情况制定模板,模拟如下:

freemarker模板


变量地方采用freemarker语法 ${} 来代替,变量名称需要跟具体实际情况一致



2.2 word模板转xml文件

word模板制作完成后,使用word编辑器 另存为 xml文件
文件 -> 另存为 -> Word XML 文档(*.xml)

使用编辑器打开xml文件,查看 模板文件中定义的变量是否正确

有时候转成XML文件后,${变量名} 分开了,则需要手动填写在一起


如是还需要使用 freemarker的其他复杂的标签语法,则需要对XML文件内容进行修改

比如:本模拟实例中,课程成绩是一个数组,则需要去进行修改XML文件内容,采用freemarker的 数组遍历语法 <#list>

<!-- 
针对课程成绩是多个,需要修改XML内容文件
使用freemarker的遍历数组的语法 <#list >
-->
<#list courses as c>
    
<w:tr>
	<w:tblPrEx>
		<w:tblBorders>
			<w:top w:val="single" w:color="auto" w:sz="4" w:space="0" />
			<w:left w:val="single" w:color="auto" w:sz="4"
				w:space="0" />
			<w:bottom w:val="single" w:color="auto" w:sz="4"
				w:space="0" />
			<w:right w:val="single" w:color="auto" w:sz="4"
				w:space="0" />
			
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯共明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值