我将web dynpro java 7.0迁移到7.4。我上传excel文件时遇到问题。 jxl.read.biff.BiffException:无法识别OLE流
我参考了一个文档"上传Excel文件和示例Web Dypro for Java"但我仍然有错误。
(我使用office 2007保存AAAA.xls(97-2003)并上传
file.getAbsolutePath()= / usr/sap/DEP/J00/j2ee/cluster/server0/AAAA.xls)
我尝试在桌面上的项目java应用程序中使用jxl.jar,读取excel文件时可以正常(* .xls)
代码:工作簿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
}
}
答案 0 :(得分:0)
你的编码似乎很好。
你使用什么Excel版本? TheJexcelApi现在为obsolete,仅适用于Excel版本至2003年,上次于2009年更新。
使用Apache POI用于后续版本的MS Office。