using ICSharpCode.SharpZipLib.Core;
public FileResult ExportAll(int gradeId)
{
var zipObjects = _scoreImportService.ExportAll(gradeId);
var outputMemoryStream = new MemoryStream();
var zipStream = new ZipOutputStream(outputMemoryStream);
zipStream.SetLevel(3);
foreach (var item in zipObjects)
{
var data = item.XlsDataTable;
var buffer = data.SaveToMemoryStream("学生成绩");
var inputMemoryStream = new MemoryStream(buffer.ToArray());
var zipEntry = new ZipEntry($"{item.Name}.xls");
zipEntry.DateTime = DateTime.Now;
zipStream.PutNextEntry(zipEntry);
StreamUtils.Copy(inputMemoryStream, zipStream, new byte[4096]);
zipStream.CloseEntry();
}
zipStream.IsStreamOwner = false;
zipStream.Close();
outputMemoryStream.Position = 0;
//return outputMemoryStream.ToArray();
var fileName = "全部";
if (gradeId != -1)
{
fileName = gradeId + "届";
}
return File(outputMemoryStream, "application/zip;charset=UTF-8", fileName + "学生成绩单.zip");
}