2016-10-17 6 views
2

У меня есть таблица, и я хочу только выбрать строки с определенным словом в одном столбце и другое слово в другом столбце. На данный момент я могу только проверить слово в любой ячейке в строке. Как проверить наличие слова в ячейке в определенном столбце?Проверьте, содержит ли строка слово

Вот мой код

FileInputStream fis = new FileInputStream(new File(filepath)); 
XSSFWorkbook  workBook = new XSSFWorkbook (fis); 
XSSFSheet   sheet = workBook.getSheetAt (0); 

List<XSSFRow> filteredRows = new ArrayList<XSSFRow>(); 
Iterator<Row> rows= sheet.rowIterator(); 
while (rows.hasNext()){ 
    XSSFRow row = (XSSFRow) rows.next(); 

    Iterator<Cell> cells = row.cellIterator(); 
    while (cells.hasNext()){ 

     XSSFCell cell = (XSSFCell) cells.next(); 
     if (cell.toString().contains("Ginko")) { 
      filteredRows.add(row); 
      break; 
     } 
    } 
} 
+0

Вы знаете, какой столбец (индекс или имя), что нужно смотреть в? – Rao

+0

Да. По имени и, если необходимо, заголовком –

+0

и номером в строке –

ответ

2

Вы можете проверить, если ячейка находится в определенном столбце, вызвав cell.getColumnIndex() == columnNumber. Например:

for(Cell cell : row) { 
    if(cell.getColumnIndex() == 1) { 
    // process a cell in column 1 
    } 
} 

Источник: https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html#getColumnIndex()

+0

Должно быть что-то глупое, но я не получаю .getAddress как метод для ячейки –

+0

Хм какая у вас версия зависимости для POI? Метод doc говорит «начиная с 3.14beta1». – Adam

+0

На самом деле я просто понял, что существует метод '# getColumnIndex'. Я обновил свой ответ, чтобы использовать его, поскольку он более прямой. – Adam

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