我目前有可以使用的代码
pkg = OPCPackage.open(stream);
// process worksheets in pkg...
mr = new VBAMacroReader(stream);
// process macros
问题在于,第一个调用读取流,而第二个调用无法读取流。解决方法是创建多个BufferedInputReaders,该方法有效,但显然是错误的。为什么要先扫描两次pkg?
我应该打电话给
new VBAMacroReader(pkg.somehowGetPOIFSFileSystem())
但是,完全不清楚GetPOIFSFileSystem()应该是什么。
(我只有一个流作为源,没有文件,它是通过网络传输的。只需要为.xlsm而不是.xls工作。但是显然宏部分是二进制的。)
任何帮助表示赞赏。