Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ApachePOI中是否可以查看列中是否存在值_Java_Excel_Apache Poi - Fatal编程技术网

Java 在ApachePOI中是否可以查看列中是否存在值

Java 在ApachePOI中是否可以查看列中是否存在值,java,excel,apache-poi,Java,Excel,Apache Poi,我正在寻找一个函数,它将检查所需字段中是否存在值。例如:检查工作表“数据”中是否存在“所需值”,范围为A1:A2546。我认为您可以利用以下信息: public boolean checkIfValueExistsInColumn(String columnName, String valueToCheck) throws InterruptedException { int colNum = -1; // searching the file for the desired

我正在寻找一个函数,它将检查所需字段中是否存在值。例如:检查工作表“数据”中是否存在“所需值”,范围为A1:A2546。

我认为您可以利用以下信息:

public boolean checkIfValueExistsInColumn(String columnName, String valueToCheck) throws InterruptedException {

    int colNum = -1;
    // searching the file for the desired column
    for (Cell cell : dataSetHeaders) {

        if (cell.getRichStringCellValue().getString().trim().equalsIgnoreCase(columnName)) {

            colNum = cell.getColumnIndex();
            break;

        }

    }

    // if desired column does not exist
    if (colNum == -1)
        throw new InterruptedException();

    for(int r = 1; r < dataSetSheet.getLastRowNum(); r++) {
    
                if(dataSetSheet.getRow(r).getCell(colNum).getStringCellValue().equals(valueToCheck)) {
    
                   return true;
    
                }
    
     }
    
     return false;

}        
public boolean checkIfValueExistsInColumn(String columnName,String valueToCheck)抛出中断异常{
int colNum=-1;
//在文件中搜索所需的列
用于(单元格:dataSetHeaders){
if(cell.getRichStringCellValue().getString().trim().equalsIgnoreCase(columnName)){
colNum=cell.getColumnIndex();
打破
}
}
//如果所需的列不存在
如果(colNum==-1)
抛出新的InterruptedException();
对于(int r=1;r
是的,可以-您尝试过什么吗?检查
查找
功能我尝试使用for循环并检查行是否等于该值,如果不等于,则转到另一个值。但是它效率低,速度慢,所以我在想是否有更有效的方法。没有比在工作表“数据”中的所有行上循环并将第0(a)列的每个单元格值与所需值进行比较更有效的方法了。至少不是一般情况。如果列值已排序,则可以使用二进制搜索算法。但这取决于列值是否已排序。