2017-07-28 2 views
1

Ich habe eine Excel-Datei, in der eine Zeile enthält einige Zelle als Zeichenfolge und andere als numerische, Hyperlink.Null beim Lesen von Hyperlink von Excel mit Poi

ich die Daten aus Excel für die ich unten Code geschrieben lesen will

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

oben Code liest numerische Zellen und String-Zellen, aber wenn es darum geht, die Zellen, die einen Hyperlink, in diesem Fall enthalten, es liest diese Zellen als null.Ich kann meinen Hyperlink zwischen doppelten Anführungszeichen ("[email protected]") in das Blatt einfügen, aber ich möchte dies auf der Code-Ebene behandeln. Gibt es eine Möglichkeit, mit diesem Szenario umzugehen?

Antwort

4

Sie sollten Zelle verwenden. getHyperlink(), um einen Hyperlink von der Zelle zu erhalten.

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

Wie kann ich prüfen, ob Zelle Hyperlink enthalten oder nicht, weil jedes Mal, wenn es nicht notwendig ist, Zelle Hyperlink enthalten wird? –

+0

Es gibt null zurück, wenn die Zelle keinen Hyperlink enthält. Ich glaube nicht, dass es einen booleschen Wert gibt, den Sie verwenden können. Es ist auch möglich, dass eine Zelle sowohl einen Hyperlink als auch einen String-Zellenwert hat. –

+0

Ich möchte so lesen, wenn Zelle String enthält, dann sollte sie String sonst zurückgeben, wenn sie einen Hyperlink enthält, dann sollte sie den Hyperlink-Wert zurückgeben –

Verwandte Themen