2016-10-17 53 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