2016-07-11 17 views
0

Ich migrierte Web-Dynpro-Java 7.0 auf 7.4. Ich habe ein Problem, wenn ich eine Excel-Datei hochlade. jxl.read.biff.BiffException: OLE-Stream kann nicht erkannt werdenSAP Portal NetWeaver 7.4: jxl.read.biff.BiffException: OLE-Stream konnte nicht erkannt werden

Ich habe einen Verweis auf ein Dokument "Excel-Datei mit Beispiel-Web-Dypro für Java hochladen", aber ich habe immer noch einen Fehler.

(Ich bin office 2007 mit AAAA.xls (97-2003) zu speichern und

file.getAbsolutePath() =/usr/sap/DEP/J00/j2ee/cluster/server0/AAAA laden. xls)

ich habe versucht, in Projekt Java-Anwendung auf meinem Desktop mit jxl.jar, dann ist es in Ordnung, wenn Excel-Datei zu lesen (* .xls)

Code: Arbeitsmappe wb = Workbook.getWorkbook (neue Datei ("C: /Users/pcname/Desktop/AAAA.xls "));

Aber auf dem Portal wirft es die folgende Ausnahme "Kann nicht OLE-Stream erkennen"

Der folgende Code ist:

type of Va_Resource = com.sap.ide.webdynpro.uielementdefinitions.Resource 
    .... 
InputStream inpStr = null; 
int temp = 0; 
File file = new File(wdContext.currentContextElement() 
    .getVa_Resource().getResourceName().toString()); 

FileOutputStream opStr = new FileOutputStream(file); 

if(wdContext.currentContextElement().getVa_Resource()!=null){ 

    inpStr = wdContext.currentContextElement().getVa_Resource().read(false); 

    while((temp = inpStr.read())!= -1){ 
     opStr.write(temp); 
    } 
} 

opStr.flush(); 
opStr.close(); 
path = file.getAbsolutePath(); 
     if(path.substring(path.length()-3,path.length()).trim().equalsIgnoreCase("xls")) 
{ 
    //call method for upload 
    Execute_UploadOperation(); 
} 

..... 
public void Execute_UploadOperation{ 
    try{ 
     //path = /usr/sap/DEP/J00/j2ee/cluster/server0/AAAA.xls 
     Workbook wb = Workbook.getWorkbook(new File(path)); error this line, throw exception here 

.... 
    } 
    catch (BiffException e) { 
     e.getMessage() = jxl.read.biff.Biff Exception: Unable to recognize OLE stream 
    } 
} 

Antwort

0

Ihre Codierung in Ordnung zu sein scheint.
Welche Excel-Version verwenden Sie? TheJExcelApi ist obsolete jetzt und funktioniert nur mit Excel-Versionen bis 2003, letzte Mal wurde es im Jahr 2009 aktualisiert.
Verwenden Sie Apache POI für die neuesten Versionen von MS Office.