利用easy poi 实现word批量导出
easy poi 引入
maven
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
实现功能
实现基于word模板批量生成word文档,并压缩成压缩包进行导出;
代码
public void exportWord(String projectId, HttpServletResponse response) throws Exception{
//获取项目根目录
File path = new File(ResourceUtils.getURL("classpath:").getPath());
//导出前的检查
beforeExportWord(path);
//业务代码
//根据项目id获取项目信息
ProjectEntity entity = projectRepository.getOne(projectId);
response.setCharacterEncoding("UTF-8");
response.setContentType("application/x-download");
//把项目名称当作zip包的名字
String fileName = entity.getProjectName()+".zip";
fileName = URLEncoder.encode(fileName, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
//获取该项目下评测机构的list
List<PgzjEntity> pgzjList = pgzjRepository.findByProjectIdOrderByPgzjIdAsc(projectId);
List<PgzjCompanyEntity> companList = new ArrayList<>();
if(pgzjList.size()>0){
for(PgzjEntity pgzjItem: pgzjList){
PgjgInfoUserEntity pgjgInfoUser = pgjgInfoUserRepository.findByPgjgLoginIdAndProjectId(pgzjItem.getLoginId(), pgzjItem.getProjectId()).get(0);
PgjgInfo