2017-07-28 13 views
1

1行に数文字列のセルと数字のハイパーリンクを含む1つのExcelファイルがあります。その場合、私はpoiを使用してハイパーリンクを読み取っているときにnullを取得する

HSSFCell cell =row.getCell(j+1);  
cell.setCellType(CellType.STRING); 
String cellValue = cell.getStringCellValue(); 

コード上記のコードの下に書いて、そのためにExcelからデータを読みたい

は数値セルと文字列のセルを読み取りますが、それは、ハイパーリンクを含むセルに来るとき、それそれらのセルをnullとして読み込んでいます。私はハイパーリンクを二重引用符( "[email protected]")の間に置くことができますが、これをコードレベルで処理したいと思います。このシナリオを処理する方法はありますか?

答えて

4

セルを使用する必要があります。 getHyperlink()セルからハイパーリンクを取得します。

if(cell.getCellTypeEnum() == CellType.STRING){ 
    Hyperlink hyperlink = cell.getHyperlink(); 
    String value = cell.getRichStringCellValue().getString(); 
    if(hyperlink == null) { 
     return value; 
    } else { 
     return value + " " + hyperlink.getAddress(); 
    } 
} 
+0

セルにハイパーリンクが含まれているかどうかは、セルにハイパーリンクが含まれている必要がないたびに確認できますか? –

+0

セルにハイパーリンクが含まれていない場合はnullを返します。あなたが使用できるブール値はないと思います。また、セルにハイパーリンクと文字列セルの両方の値を持たせることも可能です –

+0

セルに文字列が含まれている場合は、その文字列を返す必要があります。ハイパーリンクが含まれている場合はハイパーリンク値が返されます。 –

関連する問題