Обзор

В мире управления данными работа с файлами, разделёнными запятыми (CSV), является распространённой необходимостью. Эти файлы широко используются для хранения табличных данных, таких как электронные таблицы или базы данных, благодаря своей простоте и удобочитаемости. Возможность программно объединять и разделять CSV файлы может сэкономить время и оптимизировать рабочие процессы, особенно при работе с большими объемами данных.

В этой статье представлен пошаговый гид по объединению и разделению CSV файлов с использованием библиотеки GroupDocs.Merger для .NET.

Как объединить CSV файлы

Объединение нескольких CSV файлов в один документ может значительно упростить обработку данных и отчётность. В C# библиотека GroupDocs.Merger для .NET упрощает этот процесс, исключая необходимость в ручной манипуляции данными. Ниже приведены ключевые шаги для объединения CSV файлов с помощью C#:

  1. Загрузите исходный CSV файл: Создайте экземпляр класса Merger, передав путь к первому CSV файлу в качестве параметра.
  2. Добавьте дополнительные CSV файлы: Используйте метод Join, чтобы добавить другие CSV файлы, которые вы хотите объединить в первый документ.
  3. Сохраните объединённый результат: Вызовите метод Save, чтобы записать объединённые данные в новый CSV файл.

Вот пример, иллюстрирующий эти шаги:

// Import necessary namespaces
using System;
using System.IO;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    /// <summary>
    /// This example demonstrates how to merge multiple CSV files into a single file.
    /// </summary>
    internal static class MergeCsv
    {
        public static void Run()
        {
            Console.WriteLine("=======================================================================");
            Console.WriteLine("Пример базового использования: MergeCsv");
            Console.WriteLine();

            // Define the output folder and file name
            string outputFolder = Constants.GetOutputDirectoryPath();
            string outputFile = Path.Combine(outputFolder, "merged.csv");
            
            // Load the source CSV file using the Merger class
            using (var merger = new GroupDocs.Merger.Merger(Constants.SAMPLE_CSV))
            {
                // Add another CSV file to merge
                merger.Join(Constants.SAMPLE_CSV_2);
                
                // Merge CSV files and save the result to 'merged.csv'
                merger.Save(outputFile);
            }

            Console.WriteLine("Объединение CSV файлов успешно завершено.");
            Console.WriteLine($"Проверьте выходные данные в {outputFolder}");
        }
    }
}

В этом фрагменте кода:

  • Класс Merger создаётся с путём первого CSV файла.
  • Вызывается метод Join, чтобы включить другой CSV файл.
  • Финальный объединённый файл сохраняется с помощью метода Save.

Как разделить CSV файлы

Разделение большого CSV файла на меньшие, управляемые части также имеет важное значение для управления данными и анализа. Это особенно полезно, когда вам нужно изолировать данные или управлять размерами файлов для обработки. С библиотекой GroupDocs.Merger для .NET разделение CSV файлов так же просто, как и объединение. Ниже приведены шаги для разделения CSV файла на отдельные документы:

  1. Определите формат вывода: Укажите правила именования для выходных файлов (например, line_1.csv, line_2.csv и т.д.).
  2. Используйте метод Split: Примените этот метод от класса Merger, вместе с соответствующими параметрами, которые определяют, как должно происходить разделение.
  3. Управляйте выходными данными: После разделения у вас будут каждую строку или указанный сегмент в качестве отдельного файла.

Вот как вы можете достичь этого с помощью C#:

// Import necessary namespaces
using System;
using System.IO;
using GroupDocs.Merger.Domain.Options;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    /// <summary>
    /// This example demonstrates how to split a CSV file into separate documents.
    /// </summary>
    public class SplitCsv
    {
        public static void Run()
        {
            Console.WriteLine("=======================================================================");
            Console.WriteLine("Пример базового использования: SplitCsv");
            Console.WriteLine();

            // Define the path to the CSV file
            string filePath = Constants.SAMPLE_CSV;
            // Define the output path with a naming pattern
            string filePathOut = Path.Combine(Constants.GetOutputDirectoryPath(), "line_{0}.csv");

            // Create split options to define how to split
            TextSplitOptions splitOptions = new TextSplitOptions(filePathOut, new int[] { 1, 2, 3 });

            using (Merger merger = new Merger(filePath))
            {
                // Split the CSV file according to the specified options
                merger.Split(splitOptions);
            }

            Console.WriteLine("Исходный документ был успешно разделён.");
            Console.WriteLine($"Проверьте выходные данные в {filePathOut}.");
        }
    }
}

В этом примере:

  • Скрипт сегментирует данные на основе указанных номеров строк и сохраняет каждый сегмент как новый CSV файл.
  • Класс TextSplitOptions позволяет гибко настраивать, как должно происходить разделение.

Смотрите также

Для получения дополнительной информации и ресурсов, ознакомьтесь с следующими ссылками:

Вы можете скачать пробную версию на releases.groupdocs.com и получить временную лицензию здесь, чтобы попробовать нашу библиотеку без ограничений.

Примеры кода

Чтобы дать вам лучшее понимание того, как эффективно использовать библиотеку GroupDocs.Merger для .NET, вот несколько практических примеров, демонстрирующих объединение и разделение CSV файлов. Эти фрагменты кода легко адаптировать под ваши конкретные потребности в обработке данных.

Пример: Объединение нескольких CSV файлов

Этот пример демонстрирует объединение нескольких CSV файлов в один файл с использованием пакета GroupDocs.Merger. Убедитесь, что пути к вашим образцам файлов установлены правильно.

using System;
using System.IO;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    internal static class MergeMultipleCsvFiles
    {
        public static void Run()
        {
            Console.WriteLine("Объединение нескольких CSV файлов.");

            // Define the output folder and output file name for the merged CSV
            string outputFolder = Constants.GetOutputDirectoryPath();
            string outputFile = Path.Combine(outputFolder, "merged_result.csv");
            
            // Start merging process
            using (var merger = new GroupDocs.Merger.Merger(Constants.SAMPLE_CSV))
            {
                merger.Join(Constants.SAMPLE_CSV_2); // Добавить второй CSV файл
                merger.Join(Constants.SAMPLE_CSV_3); // Добавить третий CSV файл
                merger.Save(outputFile); // Сохранить объединённый результат
            }

            Console.WriteLine($"Успешно объединены CSV файлы в {outputFile}");
        }
    }
}

Пример: Разделение CSV файла на отдельные строки

В этом фрагменте мы разделим большой CSV файл на несколько меньших файлов, каждый из которых будет содержать заданные строки. Это может быть полезно для обработки больших наборов данных или распределения нагрузки.

using System;
using System.IO;
using GroupDocs.Merger.Domain.Options;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    public class SplitCsvToLines
    {
        public static void Run()
        {
            Console.WriteLine("Разделение CSV файла на отдельные файлы строк.");

            // Specify the path of the source CSV file
            string filePath = Constants.SAMPLE_CSV;
            // Define output file naming pattern for split result
            string outputFilePath = Path.Combine(Constants.GetOutputDirectoryPath(), "line_{0}.csv");

            // Set up split options based on desired line numbers
            TextSplitOptions splitOptions = new TextSplitOptions(outputFilePath, new int[] { 1, 2, 3 });

            using (Merger merger = new Merger(filePath))
            {
                merger.Split(splitOptions); // Разделить файл согласно параметрам
            }

            Console.WriteLine($"Успешно разделён исходный документ на отдельные файлы строк.");
        }
    }
}

Смотрите также

Для получения дополнительной информации и технических ресурсов, ознакомьтесь с ссылками ниже:

Бесплатная пробная версия и информация о временной лицензии

Вы можете загрузить пробную версию GroupDocs.Merger на releases.groupdocs.com. Для тех, кто рассматривает более длительную оценку, вы также можете получить временную лицензию здесь. Эта временная лицензия позволяет вам протестировать нашу библиотеку без каких-либо ограничений, чтобы вы могли полностью исследовать её возможности.