1 Maven依赖
<!-- EasyPoi文档处理工具 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.6.RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- MinIO文件服务器 -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.0.2</version>
</dependency>
2 调试代码
/**
* EasyPOI 将excel文档上传至MinIO
*
* @return
* @throws IOException
*/
@GetMapping("/uploadEasyPOIWorkbookToMinIO")
public String uploadEasyPOIWorkbookToMinIO() {
ExportParams params = new ExportParams();
//生成要导出的数据
List<Map<String, Object>> resultList = new ArrayList<>();
List<List<Object>> tempDataList = new ArrayList<>();
List<Object> tempRowList1 = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
tempDataList.add(tempRowList1);
List<Object> tempRowList2 = new ArrayList<>(Arrays.asList(0, 1, 8, 3, 4, 5, 7, 7, 8, 9));
tempDataList.add(tempRowList2);
List<Object> tempRowList3 = new ArrayList<>(Arrays.asList(1, 1, 2, 8, 4, 5, 6, 7, 8, 8));
tempDataList.add(tempRowList3);
for (List<Object> rowList : tempDataList) {
Map<String, Object> rowMap = new HashMap<>();
for (int i = 1; i <= rowList.size(); i++) {
rowMap.put("title" + i, rowList.get(i - 1));
}
resultList.add(rowMap);
}
//列名
List<ExcelExportEntity> entityList = new ArrayList<>();
for (int i = 1; i <= tempRowList1.size(); i++) {
ExcelExportEntity entity = new ExcelExportEntity("标题" + i, "title" + i);
entityList.add(entity);
}
Workbook workbook = ExcelExportUtil.exportExcel(params, entityList, resultList);
//Workbook 转 MultipartFile
MultipartFile multipartFile = workbookToCommonsMultipartFile(workbook, "测试文件.xlsx");
//上传文件
MinioClient minioClient = minIOService.getMinioClient();
if (minioClient == null || multipartFile == null) {
return "";
}
return minIOService.uploadFile(minioClient, multipartFile);
}
3 调试结果
注:
(1)MinIO的配置和MinIOService源码请查看以下博客。
Spring Boot配置MinIO(实现文件上传、下载、删除)
(2)workbookToCommonsMultipartFile()方法的源码请查看以下博客。
POI XWPFDocument、Workbook转MultipartFile2种方法(CommonsMultipartFile、MockMultipartFile)