Issues Opening File

I am trying to open a workbook in my classpath using this code:


InputStream input = WorkbookUtils.class.getResourceAsStream(reportTemplate);
Workbook workbook = new Workbook(input, loadOptions);

However I keep hitting this error:

20160606 14:26:32.673 EDT 200 [main] INFO com.fmrco.risk.reporting.util.WorkbookUtils - method=getWorkbookFromTemplate, input=java.io.BufferedInputStream@45c8e616
com.aspose.cells.CellsException: Error for ZipFile
at com.aspose.cells.zatc.a(Unknown Source)
at com.aspose.cells.a.f.zi.(Unknown Source)
at com.aspose.cells.a.f.zi.a(Unknown Source)
at com.aspose.cells.zpv.a(Unknown Source)
at com.aspose.cells.Workbook.a(Unknown Source)
at com.aspose.cells.Workbook.a(Unknown Source)
at com.aspose.cells.Workbook.(Unknown Source)
at com.fmrco.risk.reporting.util.WorkbookUtils.getWorkbookFromTemplate(WorkbookUtils.java:49)
at com.fmrco.risk.reporting.generator.SimpleAsposeTest.test(SimpleAsposeTest.java:19)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at com.aspose.cells.a.f.zf.e(Unknown Source)
at com.aspose.cells.a.f.zf.(Unknown Source)
at com.aspose.cells.a.f.ze.a(Unknown Source)
… 31 more

If I try to open it using the abolute path, i.e.:

InputStream input = new FileInputStream(fullPathToReportTemplate);
Workbook workbook = new Workbook(input, loadOptions);

It works fine, any ideas what could be causing this?

Hi,


Thanks for providing us some details.

I suspect the following line of code might cause your issue and has nothing to do with Aspose.Cells APIs as the file is not read fine into input streams at all (so you should debug at your end if the file is read fine or not):
InputStream input = WorkbookUtils.class.getResourceAsStream(reportTemplate);

Please make sure that your underlying Excel file is read fine into streams. I think you may try to open the file (e.g using JAVA’s IO (File) APIs) without involving Aspose.Cells APIs to check if you could load/read the file fine or not.

Thank you.

Yes it turned out to be build settings in eclipse which were corrupting the excel file, the solution was here: java - Excel file corrupt when copied from src to target in Eclipse IDE - Stack Overflow


Thanks for your help, please close the issue

Hi David,


Thank you for posting the solution. It is good to know that you are up & running again. Please feel free to contact us back in case you need our further assistance with Aspose APIs.