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(); } }