我正在使用Apache POI来解析excel文件并通过row.getCell(5).getNumericCellValue()取回值,假设该行上的cell(5)始终为数字。

是否可以智能地分析文件,以便即使列的顺序更改或混乱,我们也可以基于columnName查找值,以便合同年份始终来自标有Contract Year的列-不管该列是否为第六栏还是第七栏?

最佳答案

您可以实现一个名为getContractYearColumnIndex()的函数,该函数返回所需的索引。

private int getContractYearColumnIndex(){
    final int maxColIndex = 25;
    int colIndex = 0;
    HSSFRow titleRow = yourSheet.getRow(0);
    String value = titleRow.getCell(colIndex).getStringCellValue();

    while(value != "Contract Year" && colIndex < maxColIndex){
        colIndex = colIndex + 1;
        value = titleRow.getCell(colIndex).getStringCellValue();
    }
    return colIndex;
}


当然,此实现假定您要查找的标题位于第一行(索引0)。

07-25 22:45