1、pom.xml 导入对应的jar
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-spring-boot-starter</artifactId>
<version>4.1.3</version>
</dependency>
<!--注意:word中要使用循环等标签必须单独导入以下依赖-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.4</version>
</dependency>
2、控制层导出word代码
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import cn.afterturn.easypoi.word.WordExportUtil;
@Controller
public class WordExportController {
@GetMapping("/exportword")
public void exportwod(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> map = new HashMap<>();
map.put("projectName", "项目的名称1234");
map.put("buildUnit", "项目的建设单位4321");
map.put("constructionUnit", "中铁十七建");
map.put("supervisionUnit", "中国监理公司");
map.put("projectProgress", "施工中");
map.put("projectAddress", "项目地址信息为长安街");
map.put("projectWorkerNum", "22人");
map.put("addWorkerNum", "12人");
map.put("projectProgressRemark", "项目进度备注");
map.put("provincialNum", "10人");
map.put("otherProvincialNum", "19人");
map.put("hubeiNum", "9人");
map.put("addProvincialNum", "12");
map.put("addOtherProvincialNum", "11人");
map.put("addHubeiNum", "7人");
map.put("remark", "疫情期间注意勤洗手,戴口罩,不聚集");
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "static";
String filename = "申请表";
try {
filename = new String(filename.getBytes("UTF-8"), "iso8859-1");
XWPFDocument doc = WordExportUtil.exportWord07(path + "/template/word/apply_word.docx", map);
OutputStream os = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + filename + ".docx");// filename为导出的word的名字
doc.write(os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@GetMapping("/exportword2")
public void exportwod2(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("title", "个人信息");
Map<String, String> user = new HashMap<>();
user.put("name", "张三");
user.put("age", "22");
user.put("address", "广东省珠海市香洲区");
user.put("other", "篮球");
dataMap.put("user", user);
List<Map<String, String>> jobs = new ArrayList<>();
Map<String, String> job;
for (int i = 0; i < 5; i++) {
job = new HashMap<>();
job.put("name", "公司名称-" + i);
job.put("address", "公司地址:" + i);
jobs.add(job);
}
dataMap.put("jobs",jobs);
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath() + "static";
String filename = "简历";
try {
filename = new String(filename.getBytes("UTF-8"), "iso8859-1");
XWPFDocument doc = WordExportUtil.exportWord07(path + "/template/word/intro.docx", dataMap);
OutputStream os = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + filename + ".docx");// filename为导出的word的名字
doc.write(os);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
导出模板如下
当前共有 0 条评论