我目前正在使用 POI 尝试从一批 Word 文档中提取文本,并且我需要能够确定文档包含哪些条目。我已经能够拉动文档根目录并拉动第一个条目,但我希望能够查看所有条目。该getEntries()
方法似乎提供了此功能,但我不知道如何使用getViewableIterator()
将它们拉出来。
以下是我在代码方面的内容:
<cfset myFile = createObject("java", "java.io.FileInputStream").init(fileInputPath)>
<cfset fileSystem = CreateObject( "java", "org.apache.poi.poifs.filesystem.POIFSFileSystem" ).Init(myFile)>
<cfloop from="1" to="#fileSystem.getRoot().getEntryCount()#" index="i">
<cfset viewableIterator = fileSystem.getRoot().getEntries().next().getViewableIterator()>
<cfset nextEntry = fileSystem.getRoot().getEntries().next()>
<cfif viewableIterator.hasNext()>
<cfdump var="#nextEntry.getShortDescription()#">
<cfset viewableIterator.remove()>
</cfif>
</cfloop>
在第一个循环中,我能够很好地获得第一个条目。但是,java.lang.IllegalStateException
一旦remove()
执行,我就会收到错误。显然我没有remove()
正确使用该方法,但我无法找到任何应该如何正确使用该方法的示例。任何帮助将不胜感激。