С# разбивает большой файл excel на файлы меньшего размера

Я хочу разделить один большой файл Excel на несколько небольших и доступных файлов.

Я уже пытался использовать этот код, но файлы недоступны:

using (System.IO.StreamReader sr = new System.IO.StreamReader("path"))
{
    int fileNumber = 0;

    while (!sr.EndOfStream)
    {
        int count = 0;

        using (System.IO.StreamWriter sw = new System.IO.StreamWriter("other path" + ++fileNumber + ".xlsx"))
        {
            sw.AutoFlush = true;

            while (!sr.EndOfStream && ++count < 20000)
            {
                sw.WriteLine(sr.ReadLine());
            }
        }
    }
}

Любые идеи? Спасибо.


person DimDom    schedule 26.09.2017    source источник
comment
произвольное разбиение файла на куски имеет цель, но что вы ожидали, что сможете его прочитать? Excel имеет формат - если формат недействителен, он не увидит его как файл.   -  person BugFinder    schedule 26.09.2017
comment
Это все равно, что пытаться сделать два седана из грузовика, используя только пилу.   -  person nl-x    schedule 26.09.2017
comment
Это возможно с Aspose.Cells. Но Aspose.Cells прочитает исходный файл Excel и создаст новые файлы Excel для каждой части или блока данных.   -  person shakeel    schedule 27.09.2017


Ответы (1)


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

Что касается файлов Excel, вы можете изучить следующий учебник, в котором показано, как автоматизировать Excel из C#:

https://support.microsoft.com/en-us/help/302084/how-to-automate-microsoft-excel-from-microsoft-visual-c--net

По сути, вы хотите открыть свой большой файл Excel, решить, где вы хотите его разделить (каждые n строк, каждый n листов и т. д.), прочитать каждую часть и записать во вновь созданный xlsx.

person ccalboni    schedule 26.09.2017