easyexcel 读取

@Data
public class importUserPj  extends BaseRowModel {

    @ExcelProperty(value = "工号",index = 0)
    @NumberFormat(value = "0")
    private String jobCode;

    @ExcelProperty(index = 1)
    private String nickName;

    @ExcelProperty(index =2)
    private String joinTimeStr;

    @ExcelProperty(index =3)
    private String xueLi;
    @ExcelProperty(index =4)
    private String ziGe;
    @ExcelProperty(index =5)
    private String zhiWu;

}

/**
 * 解析监听器,
 * 每解析一行会回调invoke()方法。
 * 整个excel解析结束会执行doAfterAllAnalysed()方法
 */
@Slf4j
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExcelListener<T> extends AnalysisEventListener<T> {

    /**
     * 自定义存储表格数据
     */
    private List<T> dataList = new ArrayList<>();
    /**
     * 自定义存储标题结果
     */
    private T titleMap;


    @Override
    public void invoke(T result, AnalysisContext context) {
        //获取当前行号
        Integer rowIndex = context.readRowHolder().getRowIndex();
        if (rowIndex == 0) {
            this.titleMap = result;
        } else {
            //数据存储到list,供批量处理,或后续自己业务逻辑处理。
            if (result instanceof QuestionsExcelData) {
                // 校验等等
            }
            dataList.add(result);
        }
        log.info("解析数据第{}行,数据为:{}", rowIndex, result);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        // list.clear();//解析结束销毁不用的资源
        // 处理业务数据插入表 还是校验等等
        log.info("解析完成!");
    }

}
@RestController
@RequestMapping("/system/user")
public class importUser {


    @PostMapping("/importData")
    public BaseResult importu(MultipartFile file, boolean updateSupport) throws IOException {
        InputStream inputStream = file.getInputStream();
        //实例化实现了AnalysisEventListener接口的类
        ExcelListener listener = new ExcelListener();
        //传入参数
        ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, listener);
        //读取信息
        excelReader.read(new Sheet(2, 1, importUserPj.class));
//        excelReader.read(new Sheet(3, 1, importUserPj.class));
//        excelReader.read(new Sheet(4, 1, importUserPj.class));
//        excelReader.read(new Sheet(5, 1, importUserPj.class));

        //获取数据
        List<importUserPj> list = listener.getDataList();



        return null;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EasyExcel是一种用于在Java读取和写入Excel文件的库。根据您提供的引用内容,我可以看出EasyExcel提供了一些功能来读取包含公式和自定义格式的Excel文件。 引用是一个简单的读取例子,其中展示了如何使用EasyExcel读取Excel文件。在这个例子中,可以看到使用CellData来存储不同类型的数据,例如字符串、日期和浮点数。此外,还展示了如何读取带有公式的单元格数据。 引用展示了一个带有公式的实体类的定义,其中使用了CellData来存储带有不同类型数据的单元格。这里注意,即使日期类型,也使用了数字来存储,因为Excel中存储的是数字。 引用展示了如何定义格式。在这个例子中,使用了自定义转换器和EasyExcel提供的注解来定义字符串和日期的格式。自定义转换器可以用于将Excel中的数据转换成Java中的数据类型,而注解则用于定义Excel中的数字和日期的格式。 综上所述,EasyExcel提供了丰富的功能来读取Excel文件,包括读取不同类型的数据、读取带有公式的单元格数据以及定义数据的格式。您可以根据您的需求使用这些功能来读取Excel文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [EasyExcel的使用--读取](https://blog.csdn.net/fairylym/article/details/116849513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值