1.创建excel 写好表头,填充好1行假数据
2.另存为(将.xsls 改为 .xml 格式 )
3.赋值.xml 文件到 springboot 的 resource/template 文件夹下,并改名为.ftl
4.
pom.xml
<!--freemarker start-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.8</version>
</dependency>
<!--freemarker end-->
5.
yml
spring:
freemarker:
allow-request-override: false
# 开发过程建议关闭缓存
cache: true
check-template-location: false
charset: UTF-8
content-type: text/html; charset=utf-8
expose-request-attributes: false
expose-session-attributes: false
expose-spring-macro-helpers: false
request-context-attribute:
# 默认后缀就是.ftl
suffix: .ftl
template-loader-path: classPath:/template/
6.
在resource 下创建文件夹 template
7.
@Component
public class FreeMarkerTemplateUtil {
public static void downloadDoc(FreeMarkerConfigurer freemarkerConfigurer, String modelPath, Map<String, Object> data,
String fileName, HttpServletResponse response) {
try {
Template template = freemarkerConfigurer.getConfiguration().getTemplate(modelPath);
response.reset();
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
PrintWriter writer = response.getWriter();
template.process(data, writer);
writer.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
8.
@RestController
@RequestMapping("/exceldc")
public class ExcelDaochu {
@Resource
FreeMarkerConfigurer freemarkerConfigurer;
@GetMapping("/exportExcel")
public void exportExcel(HttpServletRequest request, HttpServletResponse response) {
JSONObject param = new JSONObject();
String userName = request.getParameter("userName");
String fileName = userName +"测试导出的" + ".xlsx";
Map<String,Object> resultMap= getList();
FreeMarkerTemplateUtil.downloadDoc(freemarkerConfigurer, "/cece.ftl", resultMap, fileName, response);
}
public Map<String,Object> getList(){
Map map = new HashMap();
map.put("bt1","奥里给");//人员列表
map.put("bt2","奥里给2");//rd列表
return map;
}
}
freemaker + springboot 导出自定义excel
于 2022-03-24 13:53:30 首次发布