2017-03-14 4 views
-2
package readexcel; 

import java.io.File; 
import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import org.apache.poi.hssf.usermodel.HSSFCell; 

public class ReadExcel { 

public static void main(String[] args) throws Exception 
{ 
    File f=new File("C:\\Users\\user1\\Desktop\\203132017.xls"); 
    Workbook wb=Workbook.getWorkbook(f); 

    Sheet s=wb.getSheet(0); 
    int row=s.getRows(); 
    int col=s.getColumns(); 
    HSSFCell cell; 

    for (int j=0;j<200;j++){  
     Cell c=s.getCell(10,j); 
     c.getContents();  
     c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);  
    } 
} 
}   

ich die folgende Fehlermeldung erhalten:"uncompilable Quellcode - Fehlerhafte sym-Typ" Runtime mit Apache POI

run: 
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: jxl.Cell.setCellType 
    at readexcel.ReadExcel.main(ReadExcel.java:32) 
+4

Sind Ihre Abhängigkeiten auf dem Classpath enthalten sind? Sieht dieser Code fehlerhaft aus (wie möglicherweise von Ihrer IDE gekennzeichnet)? –

Antwort

0

Sieht man Apache Poi verwenden. Bitte geben Sie alle Abhängigkeiten und Jars in Ihrem Klassenpfad an

+1

Sie sind in meinem Klassenpfad, der Code funktioniert ohne c.setCellType (HSSFCell.CELL_TYPE_NUMERIC); aber ich brauche es damit zu arbeiten, weil ich eine if-Anweisung für die Zelle schreiben möchte. Wenn ich schreibe, wenn (c = 8), sagt es, dass c vom Typ Zelle und 8 ist int ist. – justaskingforproject

+1

Wie https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html CELL_TYPE_NUMERIC sieht veraltet aus. Versuchen Sie den folgenden c.setCellType (HSSFCell.CellType.NUMERIC); –

+1

Ich habe es geändert, aber es hat nicht funktioniert und der CELLTYPE ist unterstrichen und es sagt nicht finden Symbol und immer noch Fehler beim Ausführen – justaskingforproject

2

Sie haben die Version Ihrer Apache POI Bibliothek nicht erwähnt. Aber von dem Fehler, den Sie beschrieben haben, klingt es wie> 3.15. Bitte beachten Sie, dass die Methode setCellType(int cellType) in der Apache POI-Klasse org.apache.poi.hssf.usermodel.HSSFCell veraltet ist und entfernt wird. Lesen Sie die docs.

Sie müssen stattdessen die Methode setCellType(CellType cellType) verwenden.

ersetzen

c.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

mit

c.setCellType(org.apache.poi.ss.usermodel.CellType.NUMERIC);

+0

Ich habe versucht das es immer noch nicht funktioniert. Wenn es eine andere Möglichkeit gibt, den Zellentyp in int zu konvertieren, wäre das großartig. Der Zelltyp ist immer noch unterstrichen. – justaskingforproject

+0

Oder eine Möglichkeit, die ich verwenden kann, wenn Anweisung auf Zelltyp – justaskingforproject

+0

Was ist der neue Fehler, den Sie erhalten, wenn Sie meinen obigen Vorschlag versuchen? – VHS