From: PJ Fanning Date: Tue, 4 Dec 2018 21:51:56 +0000 (+0000) Subject: [bug-57342] add SXSSFWorkbook setZip64Mode method X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=81e2ed9490f94da3ba0cd9a46f37d1521d19a416;p=poi.git [bug-57342] add SXSSFWorkbook setZip64Mode method git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1848179 13f79535-47bb-0310-9956-ffa450edef68 --- 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. *

@@ -290,6 +288,16 @@ public class SXSSFWorkbook implements Workbook { _randomAccessWindowSize = rowAccessWindowSize; } + /** + * @param zip64Mode {@link Zip64Mode} + * + * @since 4.0.3 + */ + @Beta + public void setZip64Mode(Zip64Mode zip64Mode) { + this.zip64Mode = zip64Mode; + } + /** * Get whether temp files should be compressed. * @@ -298,6 +306,7 @@ public class SXSSFWorkbook implements Workbook { public boolean isCompressTempFiles() { return _compressTmpFiles; } + /** * Set whether temp files should be compressed. *

@@ -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 en = zipEntrySource.getEntries(); while (en.hasMoreElements()) {