java读取excel模板数据并且插入到数据库
读取模板excel数据并且插入到数据库中
public Object readSchoolExcel(MultipartFile file, UserInfo user) throws IOException {
ExcelReader excelReader = null;
InputStream inputStream = null;
String guid = IdUtil.simpleUUID();
try {
inputStream =file.getInputStream() ;
excelReader = EasyExcel.read(inputStream).build();
ExcelListener sheetListener = new ExcelListener();
//获取sheet对象 ---学位出版物信息
ReadSheet readSheet1 =
EasyExcel.readSheet(0).head(SchoolExcelPublicationSheetDTO.class).registerReadListener(sheetListener).build();
excelReader.read(readSheet1);
int sheet1Size = sheetListener.getData().size();
for (int i = 0; i < sheet1Size; i++) {
SchoolExcelPublicationSheetDTO sheet1 = new SchoolExcelPublicationSheetDTO();
var dto=((SchoolExcelPublicationSheetDTO) sheetListener.getData().get(i));
///映射到实体对象
sheet1= ObjectMapper.map(dto,SchoolExcelPublicationSheetDTO.class);
sheet1.setPici(guid);
sheet1.setUpdateUser(user.getName());
sheet1.setUpdateUserId(user.getUserId());
sheet1.setUpdateTime(new Date());
sheet1.setDeleted(false);
publicationSheetService.save(sheet1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
inputStream.close();
if (excelReader != null) {
excelReader.finish();
}
}
calculateService.tempExcelToTable(guid,"学位");
return null;
}
/// excel解析
public class ExcelListener extends AnalysisEventListener<Object> {
private List<Object> data = new ArrayList<>();
@Override
public void invoke(Object o, AnalysisContext analysisContext) {
data.add(o);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
public List<Object> getData() {
return data;
}
public void setData(List<Object> data) {
this.data = data;
}
}