java getrow,[Java教程]使用poi读取excel时,getRow()方法返回null

在使用Java POI处理Excel时,遇到getRow()返回null的问题。原因是使用SXSSFWorkbook而非XSSFWorkbook读取数据。通过将sheet对象的获取方式改为XSSFWorkbook的getSheetAt(0),问题得到解决。文章分享了这一经验,希望能帮助遇到相同问题的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[Java教程]使用poi读取excel时,getRow()方法返回null

0 2016-05-04 19:00:06

新人一枚,说说今天在工作上遇到的问题。

由于工作需要,在做一个下载excel文件的功能时,要求读取服务器上的模板文件写入数据,然后再传输到客户端。我刚工作没多久,而且因为某些原因接触到的技术太少,所以就用读取模板上的标题与从数据库中取的的数据进行关联,然后写入,如果有更好的方法,请赐教。

写完测试的时候遇到了一个问题,就是模板上第一行标题行有数据,但是用getRow()方法取到的Row却为null,懵逼了,查了好久查不出来,百度也搜不到,最后跟自己写的另一个相似的方法对比,原因找出来了!不能使用SXSSFWorkbook读取excel数据,要用XSSFWorkbook读取数据!

原来的代码是:File test = new File("D:\\test.xlsx");try { XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(test)); SXSSFWorkbook workbook = new SXSSFWorkbook(wb); Sheet sheet = workbook.getSheetAt(0); for (int i = 0; i < 5; i++) { Row row = sheet.getRow(i); if(row==null){ System.out.println(i+":null"); } }} catch (Exception e) { e.printStackTrace();}

最终控制台输出的结果为:

bc91bb04e6e9c61e24c974e4440db8f2.gif

将sheet对象的获取改为wb.getSheetAt(0)之后,就能正常获得row了。

bc91bb04e6e9c61e24c974e4440db8f2.gif

bc91bb04e6e9c61e24c974e4440db8f2.gifFile test = new File("D:\\test.xlsx");try { XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(test));// SXSSFWorkbook workbook = new SXSSFWorkbook(wb); Sheet sheet = wb.getSheetAt(0); for (int i = 0; i < 5; i++) { Row row = sheet.getRow(i); if(row==null){ System.out.println(i+":null"); } }} catch (Exception e) { e.printStackTrace();}

View Code

输出的结果为:

bc91bb04e6e9c61e24c974e4440db8f2.gif

我不知道为什么会出现这种情况,如果有知道的朋友,希望指导一下。

本文网址:http://www.shaoqun.com/a/218439.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

get

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值