Java 在ApachePOI中是否可以查看列中是否存在值
我正在寻找一个函数,它将检查所需字段中是否存在值。例如:检查工作表“数据”中是否存在“所需值”,范围为A1:A2546。我认为您可以利用以下信息: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
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)列的每个单元格值与所需值进行比较更有效的方法了。至少不是一般情况。如果列值已排序,则可以使用二进制搜索算法。但这取决于列值是否已排序。