引用jar包:
<!-- easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
工具类创建:
package com.common.util;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.BaseRowModel;
import com.alibaba.excel.metadata.Sheet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class WorkBookUtil {
private static Logger log = LoggerFactory.getLogger(WorkBookUtil.class);
private static Sheet initSheet;
static {
initSheet = new Sheet(1, 0);
initSheet.setSheetName("sheet");
//设置自适应宽度
initSheet.setAutoWidth(Boolean.TRUE);
}
public static <T> List<T> getWorkbook(InputStream inStr, Class<T> cls) {
List<T> listMap = EasyExcel.read(inStr).head(cls).sheet().doReadSync();
return listMap;
}
public static OutputStream writeXls(OutputStream outstream,List<? extends BaseRowModel> list){
return outstream;
}
public static OutputStream writeSimpleBySheet(OutputStream outputStream, List<List<Object>> data, List<String> head, Sheet sheet){
sheet = (sheet != null) ? sheet : initSheet;
if(head != null){
List<List<String>> list = new ArrayList<>();
head.forEach(h -> list.add(Collections.singletonList(h)));
sheet.setHead(list);
}
ExcelWriter writer = EasyExcelFactory.getWriter(outputStream);
writer.write1(data,sheet);
if(writer != null){
writer.finish();
}
return outputStream;
}
}
正式引用:
public List<ImportExcelDto>importExcel(MultipartFile file) {
if (file == null) return;
try {
InputStream inputStream = file.getInputStream();
List<ImportExcelDto> entityList = WorkBookUtil.getWorkbook(inputStream, ImportExcelDto.class);
return entityList;
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
实体类注解:
@Data
@EqualsAndHashCode(callSuper = false)
public class ImportExcelDto {
@ExcelProperty(value = {"姓名"})
private String studentName;
@ExcelProperty(value = {"学籍号"})
private String studentCode;
// 性别 1:男 0:女
@ExcelProperty(value = {"性别"})
private String sex;
@ExcelProperty(value = {"年级"})
private Integer gradeId;
@ExcelProperty(value = {"班级"})
private String className;
@ExcelProperty(value = {"头像"})
private String avatar;
}