我想写一个excel导出
value 的内容打印出来看看,可能数据本身就只有5,6,其他都是空字符串。
创建EasyListener类
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.Map;
public class EasyListener extends AnalysisEventListener<Dog> {
//一行一行读取excel内容
@Override
public void invoke(Dog dog, AnalysisContext analysisContext) {
System.out.println("数据"+dog);
}
//读取表头内容
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头:"+headMap);
}
//读取完之后
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("我读完了");
}
}
测试类代码:
public class Client {
public static void main(String[] args) {
//写入的路径
String fileName = "D:\\Dog.xlsx";
// EasyExcel.write(fileName,Dog.class).sheet("狗").doWrite(getLists());
EasyExcel.read(fileName,Dog.class,new EasyListener()).sheet("狗").doRead();
}
//模仿从后台拿到一个Dog对象的集合 (我生成了5个一样的dog狗)
public static List<Dog> getLists(){
return Stream.generate(()->new Dog(2,"阿花",28)).limit(5).collect(Collectors.toList());
}
}
输出结果如下: