Java excel-比较两个字符串
我必须检查两个xlsx文件的字符串,如果它们相等,必须返回名称,但它总是返回null,有人可以帮我吗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
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相同