这篇文档手把手教你完成导出word套打,有这个demo,其他word套打导出都通用。
1、主要依赖
<!--hutool-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>repository.org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.22</version>
</dependency>
<dependency>
<groupId>repository.org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
2、模板excel见附件。
3、以下为导出代码逻辑:
package com.example.demo.excel;
import cn.hutool.poi.word.PicType;
import lombok.Data;
/**
* 图片对象
* @author xiajun
*/
@Data
public class WordImage {
/**
* 图片宽度
*/
private int width = 100;
/**
* 图片高度
*/
private int height = 100;
/**
* 图片地址
* resource资源相对路径
*/
private String path;
/**
* 字节流
*/
private byte[] source;
/**
* 图片类型
* 默认PNG
*
*/
private PicType imageType = PicType.PNG;
}
package com.example.demo.excel;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.poi.word.Word07Writer;
import cn.hutool.poi.word.WordUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
/**
* word导出
* @author xiajun
*/
@Slf4j
@RestController
@RequestMapping("mvc/word")
public class WordExport {
@GetMapping(path = "/export")
public void export(HttpServletResponse response) throws IOException {
//1、============================模拟数据===============================
Map<String, Object> params = new HashMap<>();
params.put("${name}", "张三");
params.put("${sex}", "男");
params.put("${birth}", "1999.11");
params.put("${age}", "25");
params.put("${nation}", "汉族");
params