Example usage for org.apache.poi.hssf.usermodel HSSFObjectData getDirectory

List of usage examples for org.apache.poi.hssf.usermodel HSSFObjectData getDirectory

Introduction

In this page you can find the example usage for org.apache.poi.hssf.usermodel HSSFObjectData getDirectory.

Prototype

@Override
    public DirectoryEntry getDirectory() throws IOException 

Source Link

Usage

From source file:poi.hssf.usermodel.examples.EmeddedObjects.java

License:Apache License

public static void main(String[] args) throws Exception {
    POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(args[0]));
    HSSFWorkbook workbook = new HSSFWorkbook(fs);
    for (HSSFObjectData obj : workbook.getAllEmbeddedObjects()) {
        //the OLE2 Class Name of the object
        String oleName = obj.getOLE2ClassName();
        if (oleName.equals("Worksheet")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(dn, fs, false);
            //System.out.println(entry.getName() + ": " + embeddedWorkbook.getNumberOfSheets());
        } else if (oleName.equals("Document")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            HWPFDocument embeddedWordDocument = new HWPFDocument(dn);
            //System.out.println(entry.getName() + ": " + embeddedWordDocument.getRange().text());
        } else if (oleName.equals("Presentation")) {
            DirectoryNode dn = (DirectoryNode) obj.getDirectory();
            SlideShow embeddedPowerPointDocument = new SlideShow(new HSLFSlideShow(dn));
            //System.out.println(entry.getName() + ": " + embeddedPowerPointDocument.getSlides().length);
        } else {/*from   w  w  w .  j a  v a 2s.  c  o m*/
            if (obj.hasDirectoryEntry()) {
                // The DirectoryEntry is a DocumentNode. Examine its entries to find out what it is
                DirectoryNode dn = (DirectoryNode) obj.getDirectory();
                for (Iterator entries = dn.getEntries(); entries.hasNext();) {
                    Entry entry = (Entry) entries.next();
                    //System.out.println(oleName + "." + entry.getName());
                }
            } else {
                // There is no DirectoryEntry
                // Recover the object's data from the HSSFObjectData instance.
                byte[] objectData = obj.getObjectData();
            }
        }
    }
}