SXSSFSheet调用createRow报错,并且调用getLastRowNum一直为0的问题
来源:互联网 发布:qq空间病毒式营销源码 编辑:程序博客网 时间:2024/06/07 03:03
在项目中碰到了一个问题,同样在网上发现已经有大神发现了类似的问题,请先看他的博客,地址为:
http://blog.csdn.net/zc123456zzc/article/details/47301461
我碰到的问题是:
SXSSFSheet对象调用getLastRowNum,返回值永远是0,但是在SXSSFSheet的一个属性_sh里(类型为XSSFSheet)如果sheet页有数据,_sh的rows不是0而是此sheet真实的行数(是否是POI的bug,不太确定)。此时的sheet第二行是空行,如果在第二行创建新的一行,SXSSFSheet的createRow方法会抛出异常,抛出异常的位置在SXSSFSheet.class文件的第131行:
而我们的excel模板,恰好有几个空白行,所以在执行createRow方法时此处抛出“ Attempting to write a row[1] in the range [0,4] that is already written to disk)”。
结合项目说的直白一点就是:尝试新建第一行时,发现这一行是存在的(这一行其实是空白行,行存在但是没有数据)。
注:项目中excel模板第一行为表头,下面没有数据却有四个空白行导致的问题。
由于SXSSFSheet的getLastRowNum方法永远为0,所以无法进行判断空白行的存在。
最后的解决办法只好就是将excel模板中的空行删除就好了。
阅读全文
0 0
- SXSSFSheet调用createRow报错,并且调用getLastRowNum一直为0的问题
- SXSSFSheet对象调用getLastRowNum的问题
- mybatis调用保存方法的时候一直报500错误
- xfire客户端调用cxf服务端,一直报错
- 通过接口调用方法,接口一直为null的解决方法
- 关于调用系统拍照返回图片报错的问题
- arcgisengine中调用gp报错的问题
- xfire调用cfx发布的service报错问题
- Glassfish部署cxfwebservice,axis调用报错的问题
- 解决nodejs调用fs.renameSync报错的问题
- IE9中调用console.log.apply的报错问题
- IE9中调用window.performance.now()报错的问题
- Scanf连续调用多次并且存在%c的问题
- Scanf连续调用多次并且存在%c的问题
- Scanf连续调用多次并且存在%c的问题
- ThinkPHP框架----控制器调用模型里的方法,一直报错——Think\Model:..方法不存在!
- C#中对象调用方法如果对象为空报异常的问题
- VB调用EXCEL,第二次报错问题
- OSGi入门必读系列之《OSGi是什么:Java语言的动态模块系统》
- 阿丹学理财之资产配置
- JS解析XML文件(跨浏览器)
- HDU-3478 Catch(二分图染色+并查集)
- C语言再学习之:指针详解(1)
- SXSSFSheet调用createRow报错,并且调用getLastRowNum一直为0的问题
- sasas
- html_AngularJs简单使用
- JAVA语言程序设计 基础篇 读书笔记(前两章)
- Laravel学习1-创建项目
- zookeeper 启动失败
- PHP 与 mysqli扩展 实现用户创建 查询 更新以及删除
- 307. Range Sum Query
- Java中如何遍历Map对象的4种方法