В настоящее время я использую 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()
, но я не смог найти ни одного примера того, как это следует правильно использовать. Любая помощь будет принята с благодарностью.