2016-10-07 3 views
0

Я хочу доставить большие файлы Excel с помощью webservice или httphandler.Поток нескольких файлов Excel как один файл

Поскольку файлы Excel могут быть очень большими по размеру, я хочу разбить их на более мелкие файлы, чтобы уменьшить объем памяти.

Поэтому у меня будет мастер excelfile, который содержит заголовки столбцов и данные. И еще файлы, которые будут содержать только данные.

Во время загрузки я хочу сначала передать файл master excel, а затем добавить все другие связанные файлы excel в виде одного потока загрузки. Я не хочу их застегивать! Он должен быть одним файлом в конце

Возможно ли это?


Мастер первенствует файл с заголовками: enter image description here

Все остальные файлы будут выглядеть следующим образом (без заголовков): enter image description here

Это действительно вернется дерьмо:

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); 
      } 
     } 
    } 
+0

Возможно, вам придется создать для него что-то обычай, но я уверен, что это возможно. – code11

+0

Почему downvotes, пожалуйста, объясните?! – Legends

ответ

2

Когда вы запрашиваете файл, не загружайте его при первом запросе.

  1. Запрос имен файлов для загрузки в запрос AJAX.
  2. Для получения каждого полученного файла подготовьте свой путь к серверу.
  3. Создайте скрытые iFrames для каждого пути к файлу и укажите src как путь к файлу для каждого загружаемого файла.

Когда атрибут Iframe в src установлен, он будет перемещаться по пути к файлу, и каждый будет загружать плавающий фрейм один файл, так множественный загружает несколько плавающего фрейм файлов.

Вы не можете скачать несколько файлов по одному запросу. Как будто вы добавите поток из нескольких файлов, он создаст файл мусора, один файл мусора.