Author: fanningpj
Date: Sat Oct 26 15:22:52 2024
New Revision: 1921571
URL: http://svn.apache.org/viewvc?rev=1921571&view=rev
Log:
[bug-69411] add XSSFReader.getSheetIterator
Modified:
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/LoadPasswordProtectedXlsxStreaming.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
Modified:
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/LoadPasswordProtectedXlsxStreaming.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/LoadPasswordProtectedXlsxStreaming.java?rev=1921571&r1=1921570&r2=1921571&view=diff
==============================================================================
---
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/LoadPasswordProtectedXlsxStreaming.java
(original)
+++
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/eventusermodel/LoadPasswordProtectedXlsxStreaming.java
Sat Oct 26 15:22:52 2024
@@ -20,12 +20,12 @@
package org.apache.poi.examples.xssf.eventusermodel;
import java.io.InputStream;
+import java.util.Iterator;
import org.apache.poi.examples.xssf.usermodel.LoadPasswordProtectedXlsx;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.crypt.temp.AesZipFileZipEntrySource;
import org.apache.poi.xssf.eventusermodel.XSSFReader;
-import org.apache.poi.xssf.eventusermodel.XSSFReader.SheetIterator;
/**
* An example that loads a password protected workbook and counts the sheets.
@@ -48,11 +48,12 @@ public final class LoadPasswordProtected
try (AesZipFileZipEntrySource source =
AesZipFileZipEntrySource.createZipEntrySource(inputStream);
OPCPackage pkg = OPCPackage.open(source)) {
XSSFReader reader = new XSSFReader(pkg);
- SheetIterator iter = (SheetIterator)reader.getSheetsData();
+ Iterator<InputStream> iter = reader.getSheetsData();
int count = 0;
while(iter.hasNext()) {
- iter.next();
- count++;
+ try (InputStream stream = iter.next()) {
+ count++;
+ }
}
System.out.println("sheet count: " + count);
}
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java?rev=1921571&r1=1921570&r2=1921571&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
Sat Oct 26 15:22:52 2024
@@ -107,9 +107,10 @@ public class XSSFBReader extends XSSFRea
* @return iterator of {@link InputStream}s
* @throws InvalidFormatException if the sheet data format is invalid
* @throws IOException if there is an I/O issue reading the data
+ * @since POI 5.3.1
*/
@Override
- public Iterator<InputStream> getSheetsData() throws IOException,
InvalidFormatException {
+ public SheetIterator getSheetIterator() throws IOException,
InvalidFormatException {
return new SheetIterator(workbookPart);
}
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java?rev=1921571&r1=1921570&r2=1921571&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
Sat Oct 26 15:22:52 2024
@@ -265,8 +265,24 @@ public class XSSFReader {
*
* @throws InvalidFormatException if the sheet data format is invalid
* @throws IOException if there is an I/O issue reading the data
+ * @see #getSheetIterator()
*/
public Iterator<InputStream> getSheetsData() throws IOException,
InvalidFormatException {
+ return getSheetIterator();
+ }
+
+ /**
+ * Returns an Iterator which will let you get at all the
+ * different Sheets in turn.
+ * Each sheet's InputStream is only opened when fetched
+ * from the Iterator. It's up to you to close the
+ * InputStreams when done with each one.
+ *
+ * @throws InvalidFormatException if the sheet data format is invalid
+ * @throws IOException if there is an I/O issue reading the data
+ * @since POI 5.3.1
+ */
+ public SheetIterator getSheetIterator() throws IOException,
InvalidFormatException {
return new SheetIterator(workbookPart);
}
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java?rev=1921571&r1=1921570&r2=1921571&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
Sat Oct 26 15:22:52 2024
@@ -156,7 +156,7 @@ public final class TestXSSFReader {
XSSFReader r = new XSSFReader(pkg);
String[] sheetNames = {"Sheet4", "Sheet2", "Sheet3", "Sheet1"};
- XSSFReader.SheetIterator it = (XSSFReader.SheetIterator)
r.getSheetsData();
+ XSSFReader.SheetIterator it = r.getSheetIterator();
int count = 0;
while (it.hasNext()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]