aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2018-12-04 21:51:56 +0000
committerPJ Fanning <fanningpj@apache.org>2018-12-04 21:51:56 +0000
commit3c313a7f66b9285462cfe414f78928a6d5ea0f08 (patch)
tree8b0905ce207bb17d5474854e90b28bd75c630064
parenta83a20d718867126c72095b55f03dcc4ef767852 (diff)
downloadpoi-3c313a7f66b9285462cfe414f78928a6d5ea0f08.tar.gz
poi-3c313a7f66b9285462cfe414f78928a6d5ea0f08.zip
[bug-57342] add SXSSFWorkbook setZip64Mode method
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1848179 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
index ed52e0e16b..16d7903a37 100644
--- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
+++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
@@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
+import org.apache.commons.compress.archivers.zip.Zip64Mode;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.poi.openxml4j.opc.OPCPackage;
@@ -51,13 +52,7 @@ import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.SheetVisibility;
import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.Internal;
-import org.apache.poi.util.NotImplemented;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
-import org.apache.poi.util.Removal;
-import org.apache.poi.util.TempFile;
+import org.apache.poi.util.*;
import org.apache.poi.xssf.model.SharedStringsTable;
import org.apache.poi.xssf.usermodel.XSSFChartSheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -117,6 +112,8 @@ public class SXSSFWorkbook implements Workbook {
*/
private final SharedStringsTable _sharedStringSource;
+ private Zip64Mode zip64Mode = Zip64Mode.AsNeeded;
+
/**
* Construct a new workbook with default row window size
*/
@@ -250,6 +247,7 @@ public class SXSSFWorkbook implements Workbook {
}
}
}
+
/**
* Construct an empty workbook and specify the window for row access.
* <p>
@@ -291,6 +289,16 @@ public class SXSSFWorkbook implements Workbook {
}
/**
+ * @param zip64Mode {@link Zip64Mode}
+ *
+ * @since 4.0.3
+ */
+ @Beta
+ public void setZip64Mode(Zip64Mode zip64Mode) {
+ this.zip64Mode = zip64Mode;
+ }
+
+ /**
* Get whether temp files should be compressed.
*
* @return whether to compress temp files
@@ -298,6 +306,7 @@ public class SXSSFWorkbook implements Workbook {
public boolean isCompressTempFiles() {
return _compressTmpFiles;
}
+
/**
* Set whether temp files should be compressed.
* <p>
@@ -377,6 +386,7 @@ public class SXSSFWorkbook implements Workbook {
protected void injectData(ZipEntrySource zipEntrySource, OutputStream out) throws IOException {
ZipArchiveOutputStream zos = new ZipArchiveOutputStream(out);
+ zos.setUseZip64(zip64Mode);
try {
Enumeration<? extends ZipArchiveEntry> en = zipEntrySource.getEntries();
while (en.hasMoreElements()) {