使用jxl模版导出时出现的问题总结

开始遇到的第一个问题,是执行到 Workbook workbook = transformer.transformXLS(new FileInputStream(file),beans); 就不往下走了,后来发现是少了这个包:

commons-jexl-2.0.1.jar
这个解决后,当我在模版中使用<jxl:foreach></jxl:foreach>循环时,又出现了第二个问题:报的异常如下:
java.lang.IllegalArgumentException: Minumum row number is 0
    at org.apache.poi.ss.util.CellRangeAddressBase.validateRow(CellRangeAddressBase.java:63)
    at org.apache.poi.ss.util.CellRangeAddressBase.validate(CellRangeAddressBase.java:51)
    at org.apache.poi.hssf.usermodel.HSSFSheet.addMergedRegion(HSSFSheet.java:576)
    at org.apache.poi.hssf.usermodel.HSSFSheet.shiftMerged(HSSFSheet.java:1164)
    at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1248)
    at org.apache.poi.hssf.usermodel.HSSFSheet.shiftRows(HSSFSheet.java:1211)
    at net.sf.jxls.util.Util.shiftRows(Util.java:1036) ..........后面的省略.....

然后我在网上搜这个错误Minumum row number is 0,看到人家说是office2007的问题,换成office2003的就不会出错。我用的模版是xls2003格式的,也用2003的excel保存模版,读取运行还是会出现一样的问题,后来认真分析了下模版,发现是模版有问题。

出问题的模版:


因为有循环,直接合并掉包含循环的行是在jxl解析的模版中是不行的,把合并行和列的右边这个删掉,再执行,不会有问题,正常解析了。


解析就正常了:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值