> If I call getDirectory() this throws an exception. > > java.io.FileNotFoundException: no such entry: "MBD00000000" Your ftPictFmla references the steam with id 0: .streamId = 0x00000000 (0 ) But no such stream exists in your file, which is going to be a problem. I've taken a look at EmbeddedObjectRefSubRecord, and I'm not completely sure it's correct. Any chance you could open a new bug on bugzilla, and upload the problem file, so we can take a look?
Could you please upload the problem excel file too? We'll need to take a look in it to see exactly what your EmbeddedObjectRefSubRecord contains
Created attachment 21865 [details] excel file with an embedded object
Created attachment 21866 [details] test case
I think that in some cases, the object data is stored in the record itself, and not in another POIFS stream I've updated HSSFObjectData, so that it will tell you if it looks like there's a directory entry or not. It will now also give you the OLE2 class name, and the data if there's no directory entry. Hopefully that'll fix things for you.