easyexcel获取所有sheet页名称_JavaEE开发必备!EasyExcel操作详解

点击上方蓝字关注,更多惊喜等着你EasyExcel-读依赖: <dependency> <groupId>com.alibabagroupId> <artifactId>fastjsonartifactId> <version>1.2.39v...
摘要由CSDN通过智能技术生成
cb49c5bf48abc3a54213aac8a789ed2f.png 3cd1272e97b6c7ad62392a4da0b128d9.png点击上方蓝字关注,更多惊喜等着你 7e2465ba976ff02b82ad17a1bddc7b40.png 6c3998316d7027dfec275d7190c1f28b.png

EasyExcel-读

依赖:

    
       <dependency>
           <groupId>com.alibabagroupId>
           <artifactId>fastjsonartifactId>
           <version>1.2.39version>
       dependency>

       
       <dependency>
           <groupId>com.alibabagroupId>
           <artifactId>easyexcelartifactId>
           <version>2.1.6version>
       dependency>
       
       <dependency>
           <groupId>org.projectlombokgroupId>
           <artifactId>lombokartifactId>
           <version>1.18.10version>
       dependency>
       
       <dependency>
           <groupId>junitgroupId>
           <artifactId>junitartifactId>
           <version>4.12version>
       dependency>
编写导出的实体类:字段和顺序需要和表格一一对应:实体类的属性位置就是表格从左到右的属性
@Data@AllArgsConstructor@NoArgsConstructorpublic class Student {
    


   /**
    * 学生姓名
    */
   private String name;
   /**
    * 学生出生日期
    */
   private Date birthday;
   /**
    * 学生性别
    */
   private String gender;

   /**
    * id
    */
   private String id;}

读取Excel文件:

/**
* * 最简单的读
* *

1. 创建excel对应的实体对象
* *

2. 由于默认一行行的读取excel,所以需要创建excel一行一行的回调监听器,
* *

3. 直接读即可
*/

public class ExcelTest {

   private static final Logger LOGGER = LoggerFactory.getLogger(ExcelTest.class);

   /**
    * 工作簿:bookwork
    * 工作表:sheet
    */
   @Test
   public void test01() {
       // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
       //获得工作簿对象
       /*
        EasyExcel.read()参数:
          pathName   文件路径;"d:\\学员信息表.xlsx"
        head 每行数据对应的实体;Student.class
        readListener 读监听器,每读一样就会调用一次该监听器的invoke方法
        */
       ExcelReaderBuilder excelReaderBuilder = EasyExcel.read("学员信息表.xlsx", Student.class, new StudentReadListener());
       //获取一个工作表
       ExcelReaderSheetBuilder sheet = excelReaderBuilder.sheet();
       //读取工作表内容:sheet方法参数:工作表的顺序号(从0开始)或者工作表的名字,不传默认为0
       sheet.doRead();

   }}
读取Excel的监听器,用于处理读取产生的数据
/**
*  在读的时候,每读一行,就会自动调用监听器的invoke方法,并且把读取的内容自动封装成了一个对象
* @author JUNSHI 405773808@qq.com
* @create 2020-08-27 22:55
*/public class StudentReadListener extends AnalysisEventListener<Student> {

   private static final Logger LOGGER = LoggerFactory.getLogger(StudentReadListener.class);

   /**
    * 每读一样会自动调用这个方法
    * @param student 读取的内容自动封装成了一个对象
    * @param context
    */
   @Override
   public void invoke(Student student, AnalysisContext context) {
       LOGGER.info("解析到一条数据:{}", JSON.toJSONString(student));
       System.out.println("student = " + student);
   }
   // 全部读完之后,会调用该方法
   @Override
   public void doAfterAllAnalysed(AnalysisContext context) {

   }}

运行结果:

2020-08-28 19:47:54.165 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":"男","name":"学号00"}student = Student(name=学号00, birthday=Mon Mar 16 00:00:00 CST 2020, gender=男, id=null)2020-08-28 19:47:54.173 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":"男","name":"学号01"}student = Student(name=学号01, birthday=Mon Mar 16 00:00:00 CST 2020, gender=男, id=null)2020-08-28 19:47:54.175 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":"男","name":"学号02"}student = Student(name=学号02, birthday=Mon Mar 16 00:00:00 CST 2020, gender=男, id=null)2020-08-28 19:47:54.176 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":"男","name":"学号03"}student = Student(name=学号03, birthday=Mon Mar 16 00:00:00 CST 2020, gender=男, id=null)2020-08-28 19:47:54.177 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":"男","name":"学号04"}student = Student(name=学号04, birthday=Mon Mar 16 00:00:00 CST 2020, gender=男, id=null)2020-08-28 19:47:54.178 = [main] = [INFO ] = c.c.l.StudentReadListener - [invoke,26] - 解析到一条数据:{
    "birthday":1584288000000,"gender":&#
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值