excel数据导入

api接口编写

 @POST
    @Path("import/personnel/excel")
//    @RolesAllowed({UserRoleConstants.ADMIN})
    @ApiOperation(value = "根据excel和活动id导入该年已适配器材用户的相关信息", tags = {AssistEquipmentConstants.ADMIN, AssistEquipmentConstants.ASSIST_ACTIVITY_INFO})
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response importPersonnelExcel(
            @FormDataParam("file") InputStream inputStream,
            @FormDataParam("file") FormDataContentDisposition fileDetail,
            @QueryParam("fileTypes") String fileTypes,
            @QueryParam("activity_id") Long activityId) {
        String fileType = fileDetail.getFileName().substring(fileDetail.getFileName().lastIndexOf(".") + 1);
        verifyFileTypes(fileTypes, fileType);
        assistActivityInfoService.importPersonnelExcel(inputStream, activityId);
        return ok();
    }

读取文件服务逻辑

@Override
    public void importPersonnelExcel(InputStream inputStream, Long activityId) {
        List<AssistPersonnelImportDto> newSelects = new ArrayList<>(); //数据存放实体
// 按照.class类索引读取
        read(inputStream, AssistPersonnelImportDto.class, new AnalysisEventListener<AssistPersonnelImportDto>() {
            @Override
            public void invoke(AssistPersonnelImportDto data, AnalysisContext context) {
                newSelects.add(data);
            }

            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {
                log.info("读取完成");
            }
//从第三行开始读取数据, 这里主要是因为有大标题和表头各占两行
        }).sheet().headRowNumber(2).doRead();

        if (CollectionUtils.isEmpty(newSelects)) {
            return;
        }

//填充到数据库逻辑
.....
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值