使用jxl包的importSheet方法抛出空指针异常的解决方法

在使用jxl对Excel进行导入导出时,有时需要将一个Excel中的sheet复制到另外一个Excel中,此时可以使用WritableWorkbook中的importSheet方法。但是在使用该方法后运行时抛出了空指针异常:

java.lang.NullPointerException 
	at jxl.write.biff.SheetCopier.deepCopyCells(SheetCopier.java:996)
	at jxl.write.biff.SheetCopier.importSheet(SheetCopier.java:542)
	at jxl.write.biff.WritableSheetImpl.importSheet(WritableSheetImpl.java:2699)
	at jxl.write.biff.WritableWorkbookImpl.importSheet(WritableWorkbookImpl.java:1897)
在网上搜了一些资料发现,该错误是由于jar包中的一个bug导致的,开发者应该使用&&来判断c.getCellFeatures()和c.getCellFeatures().hasDataValidation(),但是却使用&来进行判断,所以当前者为null时,程序仍然跑去判断第二个条件,所以抛出了空指针异常。源码如下:

if (c.getCellFeatures() != null &  
     c.getCellFeatures().hasDataValidation())  
 {  
   validatedCells.add(c);  
 }  
解决办法:换了2.6.10版本的jar包,这个jar包中不存在该bug,可以正常使用importSheet方法。
在这里分享一下jar包下载链接:http://www.java2s.com/Code/Jar/j/Downloadjxl2610jar.htm


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值