@PostMapping("/excelImport") public Integer importExcel(@RequestBody MultipartFile file){ int count = 0; if (file.isEmpty()) { log.info( "文件为空!"); return count; } // 获取上传文件输入流 InputStream inputStream = null; try { inputStream = file.getInputStream(); } catch (Exception e) { log.error("错误信息描述",e); } //调用用 hutool 方法读取数据 默认调用第一个sheet ExcelReader excelReader = ExcelUtil.getReader(inputStream); //execl标题与Bean字段名对应 excelReader.addHeaderAlias("字段名称A","id"); excelReader.addHeaderAlias("字段名称B","name"); excelReader.addHeaderAlias("字段名称C","age"); //读取为Bean列表,Bean中的字段名为标题,字段值为标题对应的单元格值。 List<XXXX> recordList = excelReader.read(1,2,XXXX.class); if(CollUtil.isNotEmpty(recordList)){ //调用service方法将获取的数据入库 count = XXXService.insert(recordList); } return count; }
//读取本地excel
//注意依赖版本,版本太低读取excel不同版本会失败
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>
public String[] excel() { try { //调用用 hutool 方法读取数据 默认调用第一个sheet ExcelReader excelReader = ExcelUtil.getReader(FileUtil.file("文件本地存储文职")); //execl标题与Bean字段名对应 excelReader.addHeaderAlias("姓名", "name"); //读取为Bean列表,Bean中的字段名为标题,字段值为标题对应的单元格值。 // List<RollCallVo> recordList = excelReader.read(1, 2, RollCallVo.class); List<RollCallVo> recordList = excelReader.readAll( RollCallVo.class); List<String> name = new ArrayList<>(); if (CollUtil.isNotEmpty(recordList)) { recordList.forEach(k->{ name.add(k.getName()); }); } if ( CollUtil.isNotEmpty(name) ){ String[] array = new String[name.size()]; for(int i = 0; i < name.size();i++){ array[i] = name.get(i); } return array; } } catch (Exception e) { e.printStackTrace(); } return null; }