easy
需求:使用easy-poi导入excel数据
实现:
一:引入依赖(这里因为之前引入的有poi,会导致版本冲突,所以做了排除;如果正常引入无需排除)
<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.1.2</version><exclusions><exclusion><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></exclusion><exclusion><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>slf4j-log4j12</groupId><artifactId>*</artifactId></exclusion><exclusion><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId></exclusion></exclusions></dependency>
二:导入实现代码
public void imp(MultipartFile multipartFile ){//导入参数ImportParams params = new ImportParams();//导入List<SocietyCouncilList> list = ExcelImportUtil.importExcel(multipartFile.getInputStream(), SocietyCouncilList.class, params);//list就是excel结果}
实体类:(需要使用@Excel注解,对应的name为excel的表头数据)
import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;@ExcelTarget("uploadExcel")
public class SocietyCouncilList extends BaseEntity {//人员名称@Excel(name = "姓名")private String cname;//性别:0:男,1:女private int gender;@Excel(name = "性别")private String sex;//民族@Excel(name = "民族")private String national;
}
优化:这里需要前台传MultipartFile类型的文件,如果是文件服务器上的普通文件在使用时添加如下操作
//创建连接,path为文件路径URI u = URI.create(path);File fi = null;//将文件转为流try (InputStream inputStream = u.toURL().openStream()) {//新创建个文件fi = new File(profile + "/" + "人员test.xls");//将文件流写入新创建的文件中FileUtils.copyInputStreamToFile(inputStream, fi);}//将File文件转为 MultipartFileMultipartFile file = getMultipartFile(fi);
File转MultipartFile
public static MultipartFile getMultipartFile(File file) {FileItem item = new DiskFileItemFactory().createItem("file", MediaType.MULTIPART_FORM_DATA_VALUE, true, file.getName());try (InputStream input = new FileInputStream(file);OutputStream os = item.getOutputStream()) {// 流转移IOUtils.copy(input, os);} catch (Exception e) {throw new IllegalArgumentException("Invalid file: " + e, e);}return new CommonsMultipartFile(item);}


发布评论