Poi3 excel
843810Jul 7 2007 — edited Jul 9 2007Hello,
I am trying to read and write to an Excel file via my Java applet. I have done so successfully on several simple Excel files that simply had data cells without many complicated equations or any other Excel extras. However, now is the time to get the complicated ones to work. I didn't think that there would be a difference, but there is. At first, I was beginning to think that it was a file size problem, but now I am unsure. Does anyone know if there are any restrictions on POI? How about some good reference info, asside from the java doc?
Here is some more info. Currently, the excel file is 6 sheets with many complicated formulas as well as a few add ins including a fairly complex solver. There will be more added to it later, which worries me even more. It will also interact with some VB in the future.
However, I can not load the file at all. When I run the following lines:
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs, false);
I get the following exception on the second line:
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
java.lang.reflect.InvocationTargetException: java.lang.ArrayIndexOutOfBoundsException
at org.apache.poi.util.LittleEndian.getNumber(LittleEndian.java:557)
at org.apache.poi.util.LittleEndian.getShort(LittleEndian.java:90)
at org.apache.poi.hssf.record.formula.NamePtg.<init>(NamePtg.java:100)
at org.apache.poi.hssf.record.formula.Ptg.createPtg(Ptg.java:259)
at org.apache.poi.hssf.record.FormulaRecord.getParsedExpressionTokens(FormulaRecord.java:171)
at org.apache.poi.hssf.record.FormulaRecord.fillFields(FormulaRecord.java:147)
at org.apache.poi.hssf.record.Record.fillFields(Record.java:143)
at org.apache.poi.hssf.record.Record.<init>(Record.java:105)
at org.apache.poi.hssf.record.FormulaRecord.<init>(FormulaRecord.java:118)
at java.lang.reflect.Constructor.newInstance(Native Method)
at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:254)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:192)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
at scheduling.util.ExcelSheet.loadExcel(ExcelSheet.java:174)
I found the sheet that causes the problem, however I have no idea why. When I delete all the cells in the sheet, it passes through this part, but crashes further down the line. I tried deleting cells in groups, trying to determine which cell or cells are causing the problem, but it doesn't work because, in my opinion, the equations rely on cells that I deleted.
Is there a way to run a debugger to determine where it is having a problem? What about in the future, how will I be able to figure out the next hurdle? There must be some good resources on this subject, I just can't find any ... anyone know of any?
If you wish, please feel free to contact me via email at zgolo@planitusa.com. I have figured out how to use POI in a relatively simple manner, but now I am at a loss. Please Help.