Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 压缩多个excel文件_C#_Stream_Zip - Fatal编程技术网

C# 压缩多个excel文件

C# 压缩多个excel文件,c#,stream,zip,C#,Stream,Zip,我需要得到多个excel文件(SSRS报告),把它们放在文件夹和压缩。我是这样尝试的,但不起作用: public ActionResult PricingReports( List<int> productIds ) { MemoryStream memStream = new MemoryStream(); using ( ZipArchive archive = new ZipArchive( memStream, ZipArchiveMode.Update )

我需要得到多个excel文件(SSRS报告),把它们放在文件夹和压缩。我是这样尝试的,但不起作用:

public ActionResult PricingReports( List<int> productIds )
{
    MemoryStream memStream = new MemoryStream();
    using ( ZipArchive archive = new ZipArchive( memStream, ZipArchiveMode.Update ) )
    {
        foreach ( int id in productIds )
        {
            //preparing single excel file
            ReportModel model = PrepareReportModel( values );

            _ssrs.GetReport( model, "EXCEL" );

            ZipArchiveEntry singleReport = archive.CreateEntry( "PricingReport" + " - " + id );
            using ( BinaryWriter binWriter = new BinaryWriter( singleReport.Open() ) )
            {
                binWriter.Write( model.ReportBits );
            }
        }
    }
    return File( memStream.ToArray(), System.Net.Mime.MediaTypeNames.Application.Octet, "Pricing reports" );
}
公共操作结果优先级报告(列出产品ID)
{
MemoryStream memStream=新的MemoryStream();
使用(ZipArchive archive=new ZipArchive(memStream,ZipArchiveMode.Update))
{
foreach(productIds中的int-id)
{
//准备单个excel文件
ReportModel模型=PrepareReportModel(值);
_ssrs.GetReport(模型,“EXCEL”);
ZipArchiveEntry singleReport=archive.CreateEntry(“PricingReport”+“-”+id);
使用(BinaryWriter binWriter=新的BinaryWriter(singleReport.Open()))
{
binWriter.Write(model.ReportBits);
}
}
}
返回文件(memStream.ToArray(),System.Net.Mime.MediaTypeNames.Application.Octet,“定价报告”);
}

您可以将文件放在目录中并使用ZipFile类。根据您的代码,.NET4.5中引入了一个较新的功能,我知道您可能正在使用MVC。如果返回您遇到困难的文件,请参阅此问题的答案。。无论使用哪个类或库来压缩文件,都可以使用返回zip文件的相同方法。您可以将文件放在目录中并使用ZipFile类。根据您的代码,.NET4.5中引入了一个较新的功能,我知道您可能正在使用MVC。如果返回您遇到困难的文件,请参阅此问题的答案。。无论使用哪个类或库来压缩文件,都可以使用相同的方法返回zip文件。