easyexcel icon indicating copy to clipboard operation
easyexcel copied to clipboard

Convert中怎么获取行数据

Open yhan219 opened this issue 2 years ago • 1 comments

建议先去看文档

快速开始常见问题

异常代码

   private String test1;
   private String test2;

例如现在有两个字段,test2是根据test1的内容导出或导入的,需要怎么处理,我看 https://github.com/alibaba/easyexcel/issues/1700 这里说可以,但是没找到方法。希望有一个类似jackson序列化和反序列化中的JsonGenerator gen,可以使用gen.getCurrentValue()获取到当前行数据

异常提示

大家尽量把问题一次性描述清楚,然后贴上全部异常,这样方便把问题一次性解决掉。 至少大家要符合一个原则就是,能让其他人复现出这个问题,如果无法复现,肯定无法解决。

问题描述

yhan219 avatar Nov 20 '23 06:11 yhan219


import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder;

public class MyDataListener extends AnalysisEventListener<MyData> {

    private MyData currentData;

    @Override
    public void invoke(MyData data, AnalysisContext context) {
        this.currentData = data;
        // 在这里可以处理当前行数据
        processData();
    }

    private void processData() {
        if (currentData != null) {
            // 根据当前行数据进行处理
            String test1 = currentData.getTest1();
            String test2 = currentData.getTest2();
            // 在这里处理 test2 是根据 test1 的内容导出或导入的逻辑
            System.out.println("Processing data: test1=" + test1 + ", test2=" + test2);
        }
    }

    @Override
    public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
        // do nothing
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        // do nothing
    }
}

ljluestc avatar May 13 '24 04:05 ljluestc