org.apache.poi.poifs.macros
Class VBAMacroReader
java.lang.Object
org.apache.poi.poifs.macros.VBAMacroReader
- All Implemented Interfaces:
- java.io.Closeable
public class VBAMacroReader
- extends java.lang.Object
- implements java.io.Closeable
Finds all VBA Macros in an office file (OLE2/POIFS and OOXML/OPC),
and returns them.
NOTE: This does not read macros from .ppt files.
See org.apache.poi.hslf.usermodel.TestBugs.getMacrosFromHSLF() in the scratchpad
module for an example of how to do this. Patches that make macro
extraction from .ppt more elegant are welcomed!
- Since:
- 3.15-beta2
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
VBA_PROJECT_OOXML
protected static final java.lang.String VBA_PROJECT_OOXML
- See Also:
- Constant Field Values
VBA_PROJECT_POIFS
protected static final java.lang.String VBA_PROJECT_POIFS
- See Also:
- Constant Field Values
VBAMacroReader
public VBAMacroReader(java.io.InputStream rstream)
throws java.io.IOException
- Throws:
java.io.IOException
VBAMacroReader
public VBAMacroReader(java.io.File file)
throws java.io.IOException
- Throws:
java.io.IOException
VBAMacroReader
public VBAMacroReader(NPOIFSFileSystem fs)
close
public void close()
throws java.io.IOException
- Specified by:
close
in interface java.io.Closeable
- Throws:
java.io.IOException
readMacros
public java.util.Map<java.lang.String,java.lang.String> readMacros()
throws java.io.IOException
- Reads all macros from all modules of the opened office file.
- Returns:
- All the macros and their contents
- Throws:
java.io.IOException
- Since:
- 3.15-beta2
findMacros
protected void findMacros(DirectoryNode dir,
VBAMacroReader.ModuleMap modules)
throws java.io.IOException
- Recursively traverses directory structure rooted at dir.
For each macro module that is found, the module's name and code are
added to modules.
- Parameters:
dir
- The directory of entries to look atmodules
- The resulting map of modules
- Throws:
java.io.IOException
- If reading the VBA module fails- Since:
- 3.15-beta2
readMacros
protected void readMacros(DirectoryNode macroDir,
VBAMacroReader.ModuleMap modules)
throws java.io.IOException
- Reads VBA Project modules from a VBA Project directory located at
macroDir into modules.
- Throws:
java.io.IOException
- Since:
- 3.15-beta2