3

xls および xlsx ファイル処理に Apache POI 3.9 を使用しています。

ロジックに従って、各行を反復処理し、さらに処理するためにデータを収集したいと考えています。そのために、sheet.getLastRowNum() を使用して xls シートの行数を取得しています。

しかし、レコードの数が10を超える場合、sheet.getLastRowNum()は間違ったカウントを与えるようです。

行の総数が 10 の場合は正常に機能します。それ以外の場合は、1 を差し引いた結果が得られます。つまり、シートに 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;
    }

任意の提案をいただければ幸いです。

4

1 に答える 1

0

CSV から変換している可能性がありますか、または xls 内で何らかの変更 (コピーまたは貼り付け) を行った可能性がありますか? 私が言及したようないくつかの変更を行ったとき、私はまったく同じ動作をしました。それを修正するには、オリジナルをもう一度コピーする必要がありました。本当の解決策を提供できなくて申し訳ありません。何が起こったのかを言います。多分それは助けた

于 2016-03-17T13:54:16.153 に答える