Sap Portal NetWeaver 7.4: jxl.read.biff.BiffException: невозможно распознать поток OLE

Я перенес веб-dynpro Java 7.0 в 7.4. У меня возникла проблема при загрузке файла Excel. jxl.read.biff.BiffException: невозможно распознать поток OLE

У меня есть ссылка на документ "Загрузить файл Excel с примером Web Dypro для Java", но у меня все еще есть ошибка.

(Я использую Office 2007 для сохранения AAAA.xls (97-2003) и загрузки

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

Я попытался использовать jxl.jar в приложении Java проекта на моем рабочем столе, это нормально при чтении файла Excel (*.xls)

код: Workbook wb = Workbook.getWorkbook(новый файл ("C:/Users/pcname/Desktop/AAAA.xls"));

Но на портале выдается следующее исключение "Невозможно распознать поток OLE"

Код ниже:

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
    }
}

1 ответ

Ваше кодирование, кажется, в порядке.
Какую версию Excel вы используете? TheJExcelApi устарел и работает только с версиями Excel до 2003 года, последний раз он обновлялся в 2009 году.
Используйте Apache POI для последних версий MS Office.

Другие вопросы по тегам