使用easyexcel导入表格时接收前端的参数,并传入监听器

在使用easyexcel导入表格时,难免少不了前端传参给后台操作,那如何在监听器中接收呢,在GitHub中easyexcel的开发人员给出了答案

成员变量+构造函数形式处理
在这里插入图片描述
例子如下:

controller代码

try {
    // 前台传的userId,通过构造函数传入监听器
    ExcelListener excelListener = new ExcelListener(userService, userId);
    ExcelReader excelReader = EasyExcel.read(file, ExcelModel.class, excelListener).build();
    // 读取第一个sheet页,从第二行开始
    ReadSheet readSheet = EasyExcel.readSheet(0).headRowNumber(1).build();
    excelReader.read(readSheet);
    // 关闭
    excelReader.finish();
    logger.info("导入成功");
} catch (Exception e) {
    logger.error("导入出错", e);
}

监听器代码

@Component
public class ExcelListener extends AnalysisEventListener<ExcelModel> {

    private final UserService userService;

    /**
     * 用户ID
     */
    private final String userId;

	/**
	 * 构造方法
	 */
    public ExcelListener(UserService userService, String userId) {
        this.userService = userService;
        // 用于接收前端参数
        this.userId = userId;
    }
}

实现以上步骤,就能从监听器拿到值并且进行对值进行操作

你可以使用 EasyExcel导入表格。首先,确保你已经在项目中引入了 EasyExcel 的依赖。然后,你可以按照以下步骤来导入表格: 1. 创建一个 ExcelReader 对象,并指定要导入Excel 文件路径或输入流。 2. 使用 ExcelReader 对象的 read 方法来读取 Excel 文件。你可以指定要读取的 Sheet 名称或索引。 3. 在读取每一行数据,你可以通过实现 AnalysisEventListener 接口来处理行数据。例如,你可以重写 onSheet 方法来处理整个 Sheet 的数据,或者重写 invoke 方法来处理每一行的数据。 4. 在处理每一行数据,你可以根据需要获取每一列的值并进行相应的操作。 下面是一个示例代码片段,演示如何使用 EasyExcel 导入表格: ```java // 创建 ExcelReader 对象 ExcelReader excelReader = EasyExcel.read("path/to/excel/file.xlsx").build(); // 设置 AnalysisEventListener 处理数据 AnalysisEventListener<YourDataEntity> listener = new AnalysisEventListener<YourDataEntity>() { @Override public void invoke(YourDataEntity data, AnalysisContext context) { // 处理每一行数据,可以根据需要进行操作 System.out.println("Read data: " + data); } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 数据读取完成后的操作 // 例如,可以关闭资源或进行其他处理 excelReader.finish(); } }; // 读取 Excel 文件 excelReader.read(new Sheet(1, 1, YourDataEntity.class), listener); ``` 在上面的示例中,你需要将 YourDataEntity 替换为你实际的数据实体类,以便正确地读取和处理每一行数据。另外,根据你的需求,你也可以调整和扩展代码来满足你的要求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢咯咯剥壳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值