]> source.dussan.org Git - poi.git/commitdiff
[bug-57342] add SXSSFWorkbook setZip64Mode method
authorPJ Fanning <fanningpj@apache.org>
Tue, 4 Dec 2018 21:51:56 +0000 (21:51 +0000)
committerPJ Fanning <fanningpj@apache.org>
Tue, 4 Dec 2018 21:51:56 +0000 (21:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1848179 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java

index ed52e0e16bd52b9b254db32d666a0e88c8d28bdc..16d7903a37266119e55cd0ccad6f007d2eacc273 100644 (file)
@@ -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>
@@ -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.
      * <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()) {