首页 > 解决方案 > 如何创建 POI VBAMacroReader(POIFSFileSystem fs)

问题描述

我目前有工作代码

 pkg = OPCPackage.open(stream);
 // process worksheets in pkg...
 mr = new VBAMacroReader(stream);
 // process macros

问题是第一个调用读取流,然后第二个调用无法读取它。解决方法是创建多个 BufferedInputReaders 可以工作但显然都是错误的。为什么首先扫描 pkg 两次?

我应该做的是打电话

new VBAMacroReader(pkg.somehowGetPOIFSFileSystem())

但是,GetPOIFSFileSystem() 应该是什么还不清楚。

(我只有一个流作为源,而不是文件,它来自网络。只需要为 .xlsm 工作,而不是 .xls。但显然宏部分是二进制的。)

任何帮助表示赞赏。

标签: apache-poi

解决方案


推荐阅读