Esempio n. 1
0
 private void InjectData(ZipEntrySource zipEntrySource, Stream outStream)
 {
     try
     {
         ZipOutputStream zos = new ZipOutputStream(outStream);
         try
         {
             var en = zipEntrySource.Entries;
             while (en.MoveNext())
             {
                 var ze = (ZipEntry)en.Current;
                 zos.PutNextEntry(new ZipEntry(ze.Name));
                 var       inputStream = zipEntrySource.GetInputStream(ze);
                 XSSFSheet xSheet      = GetSheetFromZipEntryName(ze.Name);
                 if (xSheet != null)
                 {
                     SXSSFSheet sxSheet = GetSXSSFSheet(xSheet);
                     var        xis     = sxSheet.getWorksheetXMLInputStream();
                     try
                     {
                         CopyStreamAndInjectWorksheet(inputStream, zos, xis);
                     }
                     finally
                     {
                         xis.Close();
                     }
                 }
                 else
                 {
                     CopyStream(inputStream, zos);
                 }
                 inputStream.Close();
             }
         }
         finally
         {
             zos.Close();
         }
     }
     finally
     {
         zipEntrySource.Close();
     }
 }