2017-07-28 86 views
1

我有一個excel文件,其中一行包含少數單元格作爲字符串,而其他數值作爲超鏈接。使用poi從excel中讀取超鏈接時獲得空值

我想讀從Excel中的數據爲我寫了下面的代碼

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

上面的代碼讀取數字單元和字符串的細胞,但是當涉及到包含超鏈接的單元格,在這種情況下,正在將這些單元格讀取爲空。我可以在工作表中將超鏈接放在雙引號(「[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

我想以這種方式閱讀如果單元格包含字符串,那麼它應該返回字符串否則如果它包含超鏈接那麼它應該返回超鏈接值 –

相關問題