Asp.net mvc 将多个Excel文件流式处理为一个文件

Asp.net mvc 将多个Excel文件流式处理为一个文件,asp.net-mvc,web-services,filestream,httphandler,Asp.net Mvc,Web Services,Filestream,Httphandler,我想使用webservice或httphandler交付大型Excel文件 由于Excel文件的大小可能非常大,我想将它们拆分为较小的文件,以减少内存占用 因此,我将有一个包含列标题和数据的主Excel文件。 以及仅包含数据的其他文件 在下载过程中,我想先流式处理主excel文件,然后将所有其他相关excel文件作为一个下载流附加。 我不想拉拉链!结尾应该是一个文件 这可能吗? 带标题的主excel文件: 所有其他文件的外观如下(无标题): 这真的会让人回想起废话: void Main()

我想使用webservice或httphandler交付大型Excel文件

由于Excel文件的大小可能非常大,我想将它们拆分为较小的文件,以减少内存占用

因此,我将有一个包含列标题和数据的主Excel文件。 以及仅包含数据的其他文件

在下载过程中,我想先流式处理主excel文件,然后将所有其他相关excel文件作为一个下载流附加。 我不想拉拉链!结尾应该是一个文件

这可能吗?


带标题的主excel文件:

所有其他文件的外观如下(无标题):

这真的会让人回想起废话:

void Main()
{
    CombineMultipleFilesIntoSingleFile();
}

// Define other methods and classes here

    private static void CombineMultipleFilesIntoSingleFile(string outputFilePath= @"C:\exceltest\main.xlsx", string inputDirectoryPath = @"C:\exceltest", string inputFileNamePattern="*.xlsx")
    {
        string[] inputFilePaths = Directory.GetFiles(inputDirectoryPath, inputFileNamePattern);
        Console.WriteLine("Number of files: {0}.", inputFilePaths.Length);
        using (var outputStream = File.Create(outputFilePath))
        {
            foreach (var inputFilePath in inputFilePaths)
            {
                using (var inputStream = File.OpenRead(inputFilePath))
                {
                    // Buffer size can be passed as the second argument.
                    inputStream.CopyTo(outputStream);
                }
                Console.WriteLine("The file {0} has been processed.", inputFilePath);
            }
        }
    }

当您请求文件时,不要在第一次请求时下载它

  • 请求在AJAX请求中下载文件名
  • 对于收到的每个文件名,准备其到服务器的路径
  • 为每个文件路径创建隐藏的iFrame,并指定
    src
    作为要下载的每个文件的文件路径
  • 当设置iFrame的
    src
    属性时,它将导航到文件路径,每个iFrame将下载单个文件,因此多个iFrame将下载多个文件


    您不能在一次请求中下载多个文件。就像您将附加多个文件流一样,它将创建一个垃圾文件,一个垃圾文件。

    当您请求文件时,不要在第一次请求时下载它

  • 请求在AJAX请求中下载文件名
  • 对于收到的每个文件名,准备其到服务器的路径
  • 为每个文件路径创建隐藏的iFrame,并指定
    src
    作为要下载的每个文件的文件路径
  • 当设置iFrame的
    src
    属性时,它将导航到文件路径,每个iFrame将下载单个文件,因此多个iFrame将下载多个文件


    您不能在一次请求中下载多个文件。就好像您将附加多个文件流一样,它将创建一个垃圾文件,一个垃圾文件。

    您可能需要为其构建一些自定义的文件,但我相信这是可能的。为什么要否决,请解释一下?!你可能需要为它定制一些东西,但我相信这是可能的。为什么要投反对票,请解释一下?!