sheet.getLastRowNum()函数在Apache POI中给出无效计数3.9

我使用Apache POI 3.9进行xls和xlsx文件处理。sheet.getLastRowNum()函数在Apache POI中给出无效计数3.9

根据逻辑,我想遍历每一行,并希望收集数据进一步处理。为此,我使用sheet.getLastRowNum()来检索xls表中的行数。

但似乎sheet.getLastRowNum()给出错误的次数,如果记录数超过10

如果行的总数是10。否则它给出的结果通过一个扣除它工作正常。 即即使在工作表中有15行,它也会给出14作为最后一个行号。

任何人都可以建议我,如何解决这个问题?

下面是我用来收集数据的代码...

public static List<LinkedList<String>> populateExcelSheetContentWithHeader(Sheet sheet,int columnsCount,int rowsCount) throws Exception{ 

Row row = null;

List<LinkedList<String>> excelFileRecordsList = new LinkedList<LinkedList<String>>();

int emptyColCount = 0;

String freeTextData = null;

LinkedList<String> excelFileDataList =null;

int actualRows = sheet.getLastRowNum();

if (actualRows < rowsCount) {

rowsCount = actualRows;

}

///ITERATE OVER EACH ROW AND POPULATE THE DATA

for(int index=0;index<rowsCount;index++){

row = sheet.getRow(index);

if(row!=null){

emptyColCount = 0;

excelFileDataList =new LinkedList<String>();

for(int colIndex=0;colIndex<columnsCount;colIndex++){

freeTextData = "";

if(isEmptyCell(row.getCell(colIndex))){

emptyColCount++;

}else{

freeTextData = getCellValue(row.getCell(colIndex),false);

}

//ADD TEXT DETILS TO THE LIST

excelFileDataList.add(freeTextData);

}

//CHECK FOR END OF FILE

if(emptyColCount != columnsCount){

excelFileRecordsList.add(excelFileDataList);

}else{

break;

}

}

}

return excelFileRecordsList;

}

任何建议表示赞赏。

回答:

很可能你是从CSV转换或者你做任何修改(复制或粘贴)您的XLS里面的?当我像我提到的那样进行一些更改时,我的行为也一样。要解决它,我不得不再次复制原件。对不起,没有提供真正的解决方案,我只是说发生了什么。 也许有帮助

以上是 sheet.getLastRowNum()函数在Apache POI中给出无效计数3.9 的全部内容, 来源链接: utcz.com/qa/258960.html

回到顶部