2017-07-20 1 views
0

Ich versuche, Excel-Daten in der Soap Ui mit dem Groovy-Skript zu lesen. Alles sieht gut aus, außer wenn Skript versucht, Excell Cell-Daten zu bekommen, dann wirft es Exception. Ich bin nicht sicher, wie kann ich von beiden folgenden verwenden Kombination:Groovy-Skript nicht STRING-Wert von einer NUMERISCHEN Zelle Ausnahme erhalten, wenn alphanumerischer Wert

log.info cell.getNumericCellValue() 
log.info cell.getStringCellValue() 

Dies ist, wie meine Excel-Daten wie folgt aussehen:

Column1 Column2 

USA   1 
CANADA  2 
FRANCE  3 

Nach meinem Code sind:

import org.apache.poi.xssf.usermodel.* 


def fs = new FileInputStream("C:\\File\\Book2.xlsx") 
def wb = new XSSFWorkbook(fs) 
def ws = wb.getSheet("Sheet1") 
def r = ws.getPhysicalNumberOfRows() 


for(def i=0; i<r; i++){ 

    def row = ws.getRow(i) 
    def c = row.getPhysicalNumberOfCells() 

    for (def j=0; j<c; j++) { 

     def cell = row.getCell(j) 

     log.info cell.getStringCellValue() 
    } 
} 

Als ich über Code laufen dann bin ich getting Folge Ausnahme, wenn mein Excel eine Spalte mit Alpha-Wert enthält und eine andere Spalte numerischen Wert hat:

java.lang.illegalStateException:Cannot get a STRING value from a NUMERIC cell 

und wenn ich log.info cell.getStringCellValue()-log.info cell.getNumericCellValue() aktualisieren es folgende Ausnahme dann werfen: Ich ersetze

nur cell.getStringCellValue():

java.lang.illegalStateException:Cannot get a NUMERIC value from a STRING cell 
+0

Was passiert, [wenn Sie die Dokumentation auf dem Erhalten Zellenwerte lesen] (http://poi.apache.org/spreadsheet/quick-guide.html#CellContents) und prüfe den Zelltyp vor dem Holen? – Gagravarr

+0

Nach dem Lesen der Dokumentation habe ich die zu verwendende Lösung toString() gefunden – Curious

Antwort

0

ich tat etwas Forschung und finden Sie heraus, dass dies, wie wir den Wert analysieren kann mit cell.toString() im folgenden Code und Exception Problem ist gelöst.

Aktualisiert Code ist wie folgt:

import org.apache.poi.xssf.usermodel.* 


def fs = new FileInputStream("C:\\File\\Book2.xlsx") 
def wb = new XSSFWorkbook(fs) 
def ws = wb.getSheet("Sheet1") 
def r = ws.getPhysicalNumberOfRows() 


for(def i=0; i<r; i++){ 

    def row = ws.getRow(i) 
    def c = row.getPhysicalNumberOfCells() 

    for (def j=0; j<c; j++) { 

     def cell = row.getCell(j) 

     log.info cell.toString() 
    } 
} 
+0

Sie können es als Lösung markieren. – Rao

+0

Ich habe meine Anser als Lösung aktualisiert. – Curious

Verwandte Themen