2016-08-17 4 views
-2

У меня возникли проблемы с получением номера строки определенной строки. Скажем, у меня есть содержимое ячейки = «HC» в строке 9 и с использованием метода findRow (лист «HC»). Я должен получить возвращаемое значение 9, но прямо сейчас возвращается 0.Java - Нужна помощь в получении строки # определенного значения

Назначение функции excelSheetFinder после того, как номер строки возвращается из findRow(), я могу получить ячейки из определенного столбца, чтобы я ввод в качестве параметров (enCol и frCol).

Любая помощь приветствуется!

public static String[] excelSheetFinder(String value, int enCol, int frCol) throws IOException{ 
    String[] shortNames = new String[2]; 
    File excelFile = new File("excel.xlsx"); 
    FileInputStream inputExcelFile = new FileInputStream(excelFile); 
    XSSFWorkbook wb = new XSSFWorkbook(inputExcelFile); 
    XSSFSheet sheet = wb.getSheetAt(0); 

    int shortNameRow = findRow(sheet, value); 

    System.out.println(shortNameRow); 

    Row r = sheet.getRow(shortNameRow); 
    String enCell = r.getCell(enCol).toString(); 
    String frCell = r.getCell(frCol).toString(); 
    shortNames[0] = enCell; 
    shortNames[1] = frCell; 

    return shortNames; 
} 

private static int findRow(XSSFSheet sheet, String value){ 
    //to find row number so we can search through that specific column 
    int gotRow = 0; 
    for (Row row: sheet){ 
     for (Cell cell: row){ 
      final DataFormatter df = new DataFormatter(); 
      final XSSFCell cellVal = (XSSFCell) row.getCell(row.getRowNum()); 
      String valueAsString = df.formatCellValue(cellVal); 
      if (valueAsString.trim() == value){ 
       gotRow = row.getRowNum(); 
      } 
     } 
    } 
    return gotRow; 
} 
+1

Возможный дубликат [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

ответ

0

== Заменить на .equals для сравнения строк:

  • if (valueAsString.trim() == value)

== тесты для справки равенства

.equals() тесты на значение равенства

+0

.equals, вероятно, исправил сравнение строк для будущих проблем ... Но я все еще получаю возврат 0 (инициализированный var). Вы видите какие-либо проблемы в методе findRow? – user2874977

Смежные вопросы