只是尝试从一个普通的excel文件中读取,我使用microsoft excel starter 2010并将其保存为excel 97-2003文件,因为我最初认为异常是由文件格式引起的。显然这个例外意味着文件中嵌入了一些无法读取的东西,但对于我的生活,我不知道这是怎么回事。这只是我自己输入的一个简单的excel文件。堆栈跟踪如下:
[CDATA[jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at test.ExcelClass.updateTestResultsSpreadsheet(ExcelClass.java:1707)
at test.Internal_TestSuite.afterSuite(Internal_Virgin_TestSuite.java:846)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:543)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:212)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:309)
at org.testng.SuiteRunner.run(SuiteRunner.java:241)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1169)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1094)
at org.testng.TestNG.run(TestNG.java:1006)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:107)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:199)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:170)
]]>
我使用了类似的文件而没有抛出此异常。有任何想法吗??提前谢谢!
更新:我通过删除我在testNG类中的其他地方使用的另一个MS excel starter 2010(.xlsx)文件并将其作为.xls文件来解决了这个问题。看来堆栈跟踪没有指向问题的正确位置?或者至少当我删除第一个文件时它没有改变?无论如何它是固定的,JExcel api与其他excel格式不兼容。