2013-01-04 13 views
13

Ich versuche, die Zelle aus der Zeile durch eine Zelle Referenz zu bekommen, und ich habe ein Problem. Zum Beispiel habe ich:Get Cell by a Cell Referenz Buchstabenkennung mit Apache POI

row.getCell(CellReference.convertColStringToIndex("B")); 

Das funktioniert gut, wenn der Spaltenindex 1 ist, aber wenn Spalte gelöscht wurde, so dass die B Spaltenindex 2 wurde und das Verfahren: CellReference.convertColStringToIndex("B") wandelt es immer noch zu 1 in diesem Fall kann ich bekomme meine Spalte nicht, ich bekomme null.

Also die Frage ist, wie bekomme ich die Spalte aus der Zeile abhängig von Cell Identifier, die ein Buchstabe ist?

Antwort

26

Werfen Sie einen Blick auf my answer to a previous question:

Sie wollen wahrscheinlich die CellReference Utility-Klasse verwenden, um Ihnen zu helfen. Es bietet eine Konvertierung zwischen Buchstaben- und Zahlenreferenzen im Excel-Stil und POI-Stil 0-basierten Zeilen + Spalten. Wenn es verwendet, können Sie so etwas wie:

Sheet sheet = workbook.getSheet("MyInterestingSheet"); 

CellReference ref = new CellReference("B12"); 
Row r = sheet.getRow(ref.getRow()); 
if (r != null) { 
    Cell c = r.getCell(ref.getCol()); 
} 

, dass Sie die Zelle zu einer bestimmten Excel-Artreferenz finden lassen (wenn es definiert ist, sonst null)