現在、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()
方法を正しく使用していませんが、これを適切に使用する方法の例を見つけることができませんでした. どんな助けでも大歓迎です。