private void InjectData(FileInfo zipfile, Stream outStream) { // don't use ZipHelper.openZipFile here - see #59743 ZipFile zip = new ZipFile(zipfile.FullName); try { ZipOutputStream zos = new ZipOutputStream(outStream); try { //ZipEntrySource zipEntrySource = new ZipFileZipEntrySource(zip); //var en = zipEntrySource.Entries; var en = zip.GetEnumerator(); while (en.MoveNext()) { var ze = (ZipEntry)en.Current; zos.PutNextEntry(new ZipEntry(ze.Name)); var inputStream = zip.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 { zip.Close(); } }