Hi Matt,

> Possible this is the older version of the BIFF8 format? 

I think that is likely.

> Metadata in the spreadsheet indicates it was created by Crystal Decisions.  
> It contains an Author: tag "Crystal Decisions" and a Comments: tag "Powered 
> by Crystal".  Also contains 7 custom properties all named like "Business 
> Objects Context Information1", 2, 3 etc...  Each of these custom attributes 
> has a string value consisting of what looks like random characters and are 
> all 256 characters long except for the last one, which is 8 characters long.

Since the file comes from a piece third party software only they really know 
what software library they are using and what version of the format.

http://lmgtfy.com/?q=Crystal+decisions+support

You might see if they can help you determine which of BIFF (or XLS) you 
actually have.

If you give the initial byte signature of the file - maybe the first 256 bytes 
that might help someone give you a definitive answer.

Regards,
Dave

> Recent issue with a customer's Excel workbook we received and attempted to 
> read with Apache POI 3.7 beta 1.  POI is unable to open the workbook, 
> throwing an error upon initial workbook open each time.  I have experimented 
> with numerous different methods of opening the workbook, none of which have 
> worked.
> 
> Unfortunately I am unable to provide the workbook as it contains sensitive 
> data.  Obfuscating the data is also not an option as saving the workbook 
> fixes the issue.  I hope this post can at least add to the knowledge base.
> 
> Facts:
> 
> 1.       File is an Excel 2003 (.xls and detected as 2003 version) workbook 
> with one sheet.
> 
> 2.       Excel 2007 opens it without an issue.
> 
> 3.       Metadata in the spreadsheet indicates it was created by Crystal 
> Decisions.  It contains an Author: tag "Crystal Decisions" and a Comments: 
> tag "Powered by Crystal".  Also contains 7 custom properties all named like 
> "Business Objects Context Information1", 2, 3 etc...  Each of these custom 
> attributes has a string value consisting of what looks like random characters 
> and are all 256 characters long except for the last one, which is 8 
> characters long.

Since the file comes from a piece third party software only they really know 
what software library they are using and what version of the format.

http://lmgtfy.com/?q=Crystal+decisions+support


> 
> 4.       File came from Western Europe region and does appear to contain 
> double byte or extended ASCII.
> 
> Observations:
> 
> 1.       Opening the file and resaving it immediately fixes the issue.  This 
> also results in the file reducing in size from 26,595KB to 20,208KB.  Roughly 
> a 6MB drop in size by simply resaving it.
> 
> 2.       Looking at the file in a text editor or hex viewer after it has been 
> resaved shows heavy modification.  The end of the unmodified file was a line 
> containing the Crystal metadata.  The resaved/fixed file contains several 
> lines indicating normal Excel 2003 metadata after the Crystal metadata.
> 
> 3.       HSSF in user mode, either directly creating an HSSFWorkbook or using 
> the generic workbook factory, results in the following error:
> 
> Initialisation of record 0xFF left 6 bytes remaining still to be read.
> null
> org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:156)
> org.apache.poi.hssf.record.RecordFactoryInputStream.nextRecord(RecordFactoryInputStream.java:216)
> org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:439)
> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:278)
> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:203)
> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:319)
> org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:300)
> org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:60)
> 
> 
> 4.       HSSF in event mode using it's default constructor results in the 
> following error (and no this is not a path error):
> 
> Exception in thread "main" java.io.FileNotFoundException: no such entry: 
> "Workbook"
>      at 
> org.apache.poi.poifs.filesystem.DirectoryNode.getEntry(DirectoryNode.java:278)
>      at 
> org.apache.poi.poifs.filesystem.DirectoryNode.createDocumentInputStream(DirectoryNode.java:128)
>      at 
> org.apache.poi.hssf.eventusermodel.HSSFEventFactory.processWorkbookEvents(HSSFEventFactory.java:63)
>      at 
> org.apache.poi.hssf.eventusermodel.HSSFEventFactory.processWorkbookEvents(HSSFEventFactory.java:53)
>      at XLS2CSVmra.process(XLS2CSVmra.java:126)
>      at XLS2CSVmra.main(XLS2CSVmra.java:323)
> 
> 
> Possible this is the older version of the BIFF8 format?  I'm unsure how to 
> identify the file as such.  The workbook factory and it's used methods 
> (POIFSFileSystem.hasPOIFSHeader()) seem to indicate it has a valid Excel 
> header, but nothing can then read the file completely.
> 
> Thanks again for any help,
> Matt


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@poi.apache.org
For additional commands, e-mail: user-h...@poi.apache.org

Reply via email to