Build 3.5.0.3 of xlsgen adds support for OLE objects extraction.
In a nutshell, OLE objects are arbitrary files stored inside spreadsheets (PDF, Word document, ...)
Unless clicked, they behave like pictures. When double-clicked they activate (the underlying OLE server starts) and you can manipulate them, including saving back to the file.
xlsgen supports the extraction of OLE objects from spreadsheets. Both the embedded objects (for instance a Word document as a file) as well as pictures (which is the last visual state of the document) can be extracted.
Here is a piece of code (C#) showing how the collection of OLE objects is exposed and how to extract what's in them.
IXlsWorkbook wbk = engine.Open( "Book1_ole_linking.xlsx", "");
int nbOleObjects = wbk.get_WorksheetByIndex(1).OLEObjects.Count;
// grab the first OLE object in the collection
// it is assumed there is one such OLE object in the spreadsheet
IXlsOLEObject object = wbk.get_WorksheetByIndex(1).OLEObjects.get_Item(1);
// location
int left = object.LeftColumn;
int right = object.RightColumn;
int top = object.TopCell;
int bottom = object.BottomCell;
// embedded object file type, for instance "doc" for a Word document
string sFileExtension = object.Filetype;
// embedded object extraction
object.ExtractToFile("output\\embedded.doc");
// picture file type, for instance "emf" for a Windows enhanced metafile picture
string sPictureFileExtension = object.SnapshotFiletype;
// picture file extraction
object.ExtractSnapshotToFile("output\\embedded.emf");