00:00
好,那我们之前讲了他的写,现在呢,我们来说它的读啊,读的话呢,在前面咱们讲这个Excel简介的时候啊,曾经跟大家说过,它呢,实际上是要依赖于一个啊观察者模式的通知处理的啊,叫做analy event listener啊这样的一个模式,然后接下来呢,我们呢,实际上啊,你就可以看到它实际上是一个抽象类啊naly event listener,我们在写读的时候呢,只要去啊去继承这个。监听器就可以了,然后呢,在这个监听器里面呢,它有两个抽象方法,一个是invo方法,一个是do after all unless方法,只要我们实现这两个抽象方法,那么它就可以利用这个监听器呢,自动去侦听我们Excel当中的每一行的数据,在侦听到每一行的时候呢,它都会去调用这个lo方法,那也就是说如果我Excel当中有十行,那这个lo方法呢,会被调用十次啊,它会做自动的真听。
01:03
啊,然后呢,真听到一行它就调用一次,真听到一行它就调用一次,最后所有的这个行它都真听完毕之后,它再执行一下do after allly的方法来做一个呃,结束的处理啊,比如说做一个收尾的处理,资源的清理工作等等等等啊,都可以在这个do after all and less里面去执行,所以这个就是整个这个侦听器的一个执行的一个流程,好,然后我们解析出来的这个数据呢,它是要封装到一个对象里面的,那这个啊,Listener呢,它有一个泛型,也就是说呢,我们可以利用这个listener呢,去封装任何类型的。呃,实体对象,那么你如果要封装Excel student d to这个实体对象的话呢,我们就把这个泛型呢,写到这个地方,那么啊,与此同时呢,在我们的实现的方法里面呢,那它就会有这样的一个。对象啊,被自动的注入到这个抽象方法当中,那当这个侦听器侦听到一行的时候,那么这一行的数据就会自动的被封装到这个data数据对象里面,我们直接从这个data数据对象里面就能够拿到我们要解析的这一行Excel的数据了啊,所以说这个是监听器的一个基本的一个呃,组成部分哈,所以呢,接下来呢,我们就先把这个监听器呢,给它创建出来啊,先建一个listener包。
02:49
Listener啊好,然后将来呢,在这个listener包里面呢,我们创建一个。Excel student d to listener。
03:01
好,然后接下来呢,我们让这个listener呢去times,刚才我们说的I less event listener,然后接下来呢,在这个unless listener这个里面呢,它需要一个泛型,我们呢要封装什么对象,我们就要封装这个Excel student d to这个对象,我们就把这个方型写上,写上之后呢,我们去实现这个里面的两个抽象方法啊,这两个抽象方法呢,一个是invoke方法,一个是do after allly方法啊刚才我们说到了这个do after allly方法呢,是所有的表格行。都真听完了之后,嗯,他会最后执行一下,所以做个收尾的工作,所以这面呢,我们先看看它是不是这样的,打印一个日志出来啊,Log个表in啊,然后呢,所有数据解析完成是吧。
04:00
接下来呢,我们在这个地方呢,写一下log.in for,然后呢,这块咱们写解析到一条记录啊,然后我们可以用这种方式啊,这块是个占位符,相当于然后呢,后面这个第二个参数呢,就会替换那个单位,好,然后它就会调用自动调用它的图string方法来替换这个占位符,把这个内容呢写到解析一条记录的后面这块。这块呢,是我们对它啊做的一个简单的这么一个呃处理啊,就是先把data打印出来,那你就知道了,Data其实就是我们数据啊,Excel数据表当中的其中的一行记录,它会从Excel当中呢把这行记录读出来,读来之后呢,然后把这行数据呢啊封装到这个对象里面去,然后封装到这个对象里之后呢,直接就打印出来,所以整个的这个数据的读取和对象的封装的过程是用监听器自动完成的,好,那现在我们要做的事情呢,就是如何去调用这个监听器,如果想让这个listen呢去运行起来,那我们呢,先写一个测试用例,我们在测试用例里边去运行它哈,我呢写一个Excel read test。
05:18
好,然后在Excel read test这个地方呢,我们写一个test,好,然后写public read simple read XL xx哈,好,然后接下来呢,我们在这个地方呢,就看一下四顿啊,其实这个读啊,它这里面也有参考,我们可以参考一下这个语阙里面,这不是读吗?
06:01
好,然后接下来呢,你看它这个读的话,它最开始也是先封装了一个DEMO data,然后呢,又封装了一个DEMO data listener,然后也是继承less even listener DEMO data,对不对,如果它这里面的处理也就是特别呃,特别复杂一些啊,那我们呢,现在就用咱们现在的这种方式先简单的处理它,这样的话呢,有助于大家理解,我们先不写那么复杂的代码,复杂的代码到时候咱们在项目当中再去写好,然后接下来呢,这个监听器,那它这既然这个东西太复杂,我们就先写刚才咱们最简单的版本,那就写完了,相当于好,写完了之后呢,咱们看怎么用这个监听器,用监听器的话呢,它在。这个地方也是有个写法一啊,还有写法二,咱们还是用这个写法一。这个复制一下。好,这里面也是一样的,先创建一个文件啊,这个文件跟我们刚才一样,我们也直接把它放在D盘,所以呢,就D盘冒号。
07:09
啊,Excel刚才咱们那个地址叫做200921哈。EXCEL2009。二一啊,这个目录下,这目录下呢,我就直接来读刚才咱们写的这个文件吧,就是这个simple right,这个XSL啊,就直接读它一会我们把这里面的内容弄写少一点,因为它现在好几万哈,是吧,把这个复制一下,复制一下之后呢,我们把这个文件名呢,就粘过来对吧?好,就读这文件,读这个文件呢,那我们怎么去读呢?叫excel.read你看跟刚才不一样的地方就是这面叫excel.right是吧?读这个文件,然后啊,这个用这个类型读,那我们现在呢,这个就是excel.read啊,然后读哪个文件,读这个文件,然后类型是什么类型是。
08:05
刚才我们的这个Excel student d to,好,然后接下来呢,这面就是肯定是listener的一个实例对象了,那所以呢,在这个地方呢,我们就把listener的实例对象呢给它扭出来,所以这个listener是在这个地方给拗出来的,明白吧,啊好,然后这个listen呢,在这个地方被扭出来之后呢,它就是读里面sheet,就是读默认的第一个,呃,Sheet,然后呢,Do read,执行一个读的操作。啊,然后所以呢,这就是我们整个读的一个过程了,那接下来呢,我们先重新的来去写一下这个文件啊,然后让让这个文件里面的这个内容呢,稍微少一点,比如说还是十吧,我重新给他写一下,我把这个先关掉。然后呢,这边呢,我们来运行一下。
09:07
好,写好了,写好了之后呢,我们来检查一下。应该是下面这个。好,这里面呢,就有十条记录啊,从字数串零一直到字符串九是吧?啊,然后这是薪资,这是生日啊好,那接下来呢,我们再来看一下我们刚才这个读。读呢,就是这个read test,好,我们在这地方执行它。好,大家看这块呢,就打印出了我们整个的一个解析的过程,这叫这就是我们日志啊,对吧,就我们的日志,然后这日志在当前的这个里面,它默认输出的一个格式啊,就是所在的县城日志的级别,日志记录器的名字,就是日志所在的那个类的类全名,然后加上一个盖,然后加上我们刚才打印出来的内容,叫解析到一条记录在这里面。
10:02
解析到一条记录对吧?然后这个记录呢,这个是个占位符啊,然后data呢,用这个to string把它打印到这个位置,所以后面这就是这个data的to string啊,就是Excel student d to它的to string,这样的话呢,你看这里面的内容就打印出来了,Name等于字符串,0BIRTHDAY等于这个日期,然后salary等于这个值对吧?啊,所以依次的就把这些都打印出来,打印出来之后就全都解析完毕了,全都解析完毕之后呢,这个时候呢,我们就来调用最后一个do after all and less方法,所以呢,所有数据解析完成,在这个地方呢,就被执行了,那这就是整个我们Excel解析的一个过程,那大家想,那其实就是在这个地方就拿到Excel数据了嘛,那你在这个地方如果从Excel当中拿到数据,你想直接把它到导入到数据库当中,你是不是就是调用到层到。
11:03
这个方法就可以了,或者是在我们这个地方,我们管它叫map,是不是调用map层的save方法是不是就可以了,这样的话,我们是不是就把一个数据从Excel当中读出来,然后从存到我们的数据库当中了,好,那这个过程我们在项目当中再去给它完成啊,所以这个整个呢,就是我们Excel读的一个具体的例子了,那呃,顺便呢,我们再来说一下这个关于版本,关于版本的话呢,跟写是一样的啊啊,我们在这个地方呢,把它这个版本号改一下,那如果我们想写这个版本的话呢,那就必须在我们的。这个呃,杜瑞的之前,在真正的去执行这个杜瑞的之前,把这个版本号呢,给它给它定义一下,在杜瑞的的she我看一下啊,在这个sheet之前,把这个版本号呢,给它定义一下,叫做Excel,叫做Excel type,然后接下来呢,这里面我们写Excel type xls明白这意思吧,啊所以呢,这个呢,就是我们整个的一个。
12:13
读另外一个版本的过程啊,那我们还是来简单的测一下,那这个是我写另外一个版本。好,现在呢,我这个版本的文件呢,就写好了,这回是写到这个里面了,是不是,那现在呢,我在读这个版本。下面这个哈。好,那我这个呃版本这个版本当中数据的读取呢,我也全部解析完成了,那这块呢,就是咱们Excel的读的一个过程了。
我来说两句