Code Bye

POI读取Excle引发的问题与思考,请各路、大神授道释惑

一、POI读取EXCLE
声明:本人使用的是POI-3.7-20101029.jar
//遇到的问题:
1、在使用HSSF导出EXCLE时,不管文件的后缀名是.xls或是.xlsx文件都能正常导出;
但是在读取时,只能读取后缀名是.xls的excle文件。(本人电脑是WPS)
2、int colNum=row.getPhysicalNumberOfCells();【A】
int colNum=row.getLastCellNum();【B】
这两个方法都是获取某一行中的总列数,不同的是返回方法不同:
【A】:Gets the number of defined cells (NOT number of cells in the actual row!).
【B】:Gets the index of the last cell contained in this row PLUS ONE.
【A】:这个方法获取的是表格中列的实际数,即存在变化的列数,不管你是有值或是加了单元格格式或是有值且有格式,
只要不是原生的初始的列。但是本人经过实践验证,发现了一个问题,假如在表格中某一行有一个原生的初始的列夹在其他列中间,则这个方法的返回值是包含那个空列的;假如有两个及以上的原生的初始的连续衔接的列夹在其他列中间,则这个方法返回值不包含原生的初始的列数的。总结:getPhysicalNumberOfCells()这个方法默认的应该是至少两个及两个以上连续的原生的列才会被忽略…
【B】:是获取最后一个不为空的列是第几个。但是对于直接通过POI导出的EXCLE表格,不经过任何修改,再进行POI导入时,
使用getLastCellNum(),得到的列数等于最后一列的下标值,假如对表格进行修改,则得到的值与row(POI API Documents)
中描述的一致,Gets the index of the last cell contained in this row PLUS ONE.
请各路路过的高手、大神解惑….
解决方案

15


ooxml有xlsx的,试试看

5

问题已解决,请参照
http://blog.csdn.net/u011627980

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明POI读取Excle引发的问题与思考,请各路、大神授道释惑