【JAVA】读Excel再抽个奖 2019-09-05

说一下前提吧,为什么涉及到反向读取数据?为什么读出来再抽个奖?
之前有段时间,项目在读取Excle中的数据用的比较多,其实也做了读取数据保存到数据库中,但是做个简单点得吧

说一下掏过来得东西吧,哈哈两个文章一掏就用了,
java读取Excel表格中的数据
list随机抽取元素

来,开始!
按照那个文章说的开整

我把不要的都去了,大致内容还是长那样

打开开发软件,先导个pom包,关于jxl的,找jar包推荐网址:我也不知道咋发现的,以后点进去找就得了

<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
<dependency>
    <groupId>net.sourceforge.jexcelapi</groupId>
    <artifactId>jxl</artifactId>
    <version>2.6.12</version>
</dependency>
来建一个对应的实体类,对于每一行数据做个说明,让数据过去,能知道是干啥的。
实体类哦

然后你的 Sheet Workbook Cell 一些就可以用了


主要看这图就完事了。

根据图来做,在createRandomList要加一个过滤数据
原因是列表随机取值时给的列表多了一个标题,所以需要过滤处理一下
把第一行干掉就完事了:list.remove(0);

但是这个上面有一点要注意,这一定会抛错误。。
原因是循环过来,直接取值的时候会使sheet.getCell(0,i);的时候会数值越界,因为你循环的时候,下一个可能就突然没有这个值了,如果你知道数据总数,可以换种写法当传参值带过来这样,能解决这个
但是那句判断读取数据为空 又感觉没啥用?
奥,是我写错了,判断合并单元格的标题当然没用,但是就算是处理第一条cell0,应该也不会执行到,因为在获取到这个值的时候就越界了,但是为什么一定要写呢?
我猜的原因是while(true)是一直循环了,防止结束不了了,到最后这个book.close()就不会处理了,所以要给一个break这个,哈哈。

以上!
2019年9月5日18点21分 lvlvlv

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,937评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,786评论 0 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,790评论 1 32
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 4,258评论 0 3
  • 我家有只可爱的小猫,它的名字叫“虎皮”。记得“虎皮”刚来我家的时候,眼睛还不喜欢睁开,身体瘦小,目光黯淡...
    小鱼跳龙门阅读 2,600评论 0 1