2016-10-17 13 views
2

私はスプレッドシートを持っているので、特定の単語が1つの列にあり、別の単語が別の列にある行のみを選択したい。現時点では、行内のどのセルでも単語を確認することしかできません。特定の列のセルにある単語の存在を確認するにはどうすればよいですか?行に単語が含まれているかどうかをチェック

は、ここに私のコード

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

関連する問題