Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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 excel-比较两个字符串_Java_Excel - Fatal编程技术网

Java excel-比较两个字符串

Java excel-比较两个字符串,java,excel,Java,Excel,我必须检查两个xlsx文件的字符串,如果它们相等,必须返回名称,但它总是返回null,有人可以帮我吗 try { FileInputStream fisCod = new FileInputStream(pathC); XSSFWorkbook wb = new XSSFWorkbook (fisCod); XSSFSheet sheet = wb.getSheetAt(0); int lastRow = sheet.ge

我必须检查两个xlsx文件的字符串,如果它们相等,必须返回名称,但它总是返回null,有人可以帮我吗

try
    {
        FileInputStream fisCod = new FileInputStream(pathC);

        XSSFWorkbook wb = new XSSFWorkbook (fisCod);
        XSSFSheet sheet = wb.getSheetAt(0);
        int lastRow = sheet.getLastRowNum();

        for(int i=0; i<lastRow; i++)
        {      
            Row row = sheet.getRow(i);
            Cell cell = row.getCell(jobCod);  

            String tmp = cell.getRichStringCellValue().getString().toLowerCase();

            if (tmp.equals(jobName)) //jobName is a String
            {
                return tmp;
            }
            else
            {
                return null;
            }
        }
        fisCod.close();
    }
    catch (IOException e)
    {
        System.out.println(e.getMessage());
    }
试试看
{
FileInputStream fisCod=新的FileInputStream(pathC);
XSSF工作簿wb=新XSSF工作簿(fisCod);
XSSFSheet-sheet=wb.getSheetAt(0);
int lastRow=sheet.getLastRowNum();

对于(int i=0;i上述代码中的第一个不匹配将导致返回
null
,而不检查后续行值。很可能,这就是您描述的场景

当尝试的匹配失败时,在返回
null
之前检查所有单元格值

for (int i = 0; i < lastRow; i++) {
    Row row = sheet.getRow(i);
    Cell cell = row.getCell(jobCod);

    String tmp = cell.getRichStringCellValue().getString().toLowerCase();

    if (tmp.equals(jobName)) {
        return tmp;
    }
}

return null; // now return null
for(int i=0;i
什么是空的?
单元格
tmp
jobName
?或者您说的是
tmp.equals(jobName)
始终为false?您是否尝试输出值以查看任何差异?
tmp
jobName
的值是多少?如果不满足条件,您将始终得到null。只需调试它或尝试使用equalsIgnoreCase,equalsIgnoreCase与equalsIgnoreCase相同