개요

데이터 관리의 세계에서는 CSV(Comma Separated Values) 파일을 처리하는 것이 일반적인 요구 사항입니다. 이러한 파일은 그 단순성과 가독성 덕분에 스프레드시트나 데이터베이스와 같은 표 형식 데이터를 저장하는 데 널리 사용됩니다. CSV 파일을 프로그래밍 방식으로 병합하고 분할하는 기능은 시간 절약과 워크플로 간소화에 도움이 되며, 특히 대량의 데이터를 다룰 때 유용합니다.

이 기사에서는 GroupDocs.Merger for .NET 라이브러리를 사용하여 CSV 파일을 병합하고 분할하는 방법에 대한 단계별 가이드를 제공합니다.

CSV 파일 병합하는 방법

여러 CSV 파일을 단일 문서로 병합하면 데이터 처리 및 보고가 크게 간소화됩니다. C#에서는 GroupDocs.Merger for .NET 라이브러리를 사용하면 이 과정을 간단하고 효율적으로 수행할 수 있으며, 수동 데이터 조작의 필요성을 없애줍니다. 아래는 C#를 사용하여 CSV 파일을 병합하는 주요 단계입니다:

  1. 원본 CSV 파일 로드하기: Merger 클래스의 인스턴스를 생성하고 첫 번째 CSV 파일의 파일 경로를 매개변수로 전달합니다.
  2. 추가 CSV 파일 추가하기: Join 메서드를 사용하여 첫 번째 문서에 병합할 다른 CSV 파일을 추가합니다.
  3. 병합된 결과 저장하기: Save 메서드를 호출하여 결합된 데이터를 새 CSV 파일에 기록합니다.

다음은 이러한 단계를 설명하는 예제입니다:

// 필요한 네임스페이스 가져오기
using System;
using System.IO;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    /// <summary>
    /// 이 예제는 여러 CSV 파일을 단일 파일로 병합하는 방법을 보여줍니다.
    /// </summary>
    internal static class MergeCsv
    {
        public static void Run()
        {
            Console.WriteLine("=======================================================================");
            Console.WriteLine("예제 기본 사용법: MergeCsv");
            Console.WriteLine();

            // 출력 폴더 및 파일 이름 정의
            string outputFolder = Constants.GetOutputDirectoryPath();
            string outputFile = Path.Combine(outputFolder, "merged.csv");
            
            // Merger 클래스를 사용하여 원본 CSV 파일 로드
            using (var merger = new GroupDocs.Merger.Merger(Constants.SAMPLE_CSV))
            {
                // 병합할 또 다른 CSV 파일 추가
                merger.Join(Constants.SAMPLE_CSV_2);
                
                // CSV 파일을 병합하고 'merged.csv'에 결과 저장
                merger.Save(outputFile);
            }

            Console.WriteLine("CSV 파일 병합이 성공적으로 완료되었습니다.");
            Console.WriteLine($"출력 경로: {outputFolder}");
        }
    }
}

이 코드 조각에서:

  • Merger 클래스는 첫 번째 CSV 파일의 경로로 인스턴스화됩니다.
  • Join 메서드는 다른 CSV 파일을 포함하기 위해 호출됩니다.
  • 최종 병합 파일은 Save 메서드로 저장됩니다.

CSV 파일 분할하는 방법

대규모 CSV 파일을 더 작고 관리 가능한 조각으로 분할하는 것도 데이터 거버넌스 및 분석에 필수적입니다. 이는 데이터 포인트를 분리하거나 처리용으로 파일 크기를 관리해야 할 때 특히 유용합니다. GroupDocs.Merger for .NET 라이브러리를 사용하면 CSV 파일을 분할하는 것도 병합만큼 쉽습니다. 아래는 CSV 파일을 개별 문서로 분할하는 단계입니다:

  1. 출력 형식 정의하기: 출력 파일의 명명 규칙을 지정합니다 (예: line_1.csv, line_2.csv 등).
  2. Split 메서드 사용하기: 이 메서드를 Merger 클래스에서 사용하고, 분할 방식에 대한 적절한 옵션을 설정합니다.
  3. 출력 관리하기: 분할 후, 각 행이나 지정된 세그먼트가 개별 파일로 생성됩니다.

다음은 C#을 사용하여 이를 달성하는 방법입니다:

// 필요한 네임스페이스 가져오기
using System;
using System.IO;
using GroupDocs.Merger.Domain.Options;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    /// <summary>
    /// 이 예제는 CSV 파일을 개별 문서로 분할하는 방법을 보여줍니다.
    /// </summary>
    public class SplitCsv
    {
        public static void Run()
        {
            Console.WriteLine("=======================================================================");
            Console.WriteLine("예제 기본 사용법: SplitCsv");
            Console.WriteLine();

            // CSV 파일의 경로 정의
            string filePath = Constants.SAMPLE_CSV;
            // 명명 패턴을 가진 출력 경로 정의
            string filePathOut = Path.Combine(Constants.GetOutputDirectoryPath(), "line_{0}.csv");

            // 분할 방법을 정의하는 분할 옵션 생성
            TextSplitOptions splitOptions = new TextSplitOptions(filePathOut, new int[] { 1, 2, 3 });

            using (Merger merger = new Merger(filePath))
            {
                // 지정된 옵션에 따라 CSV 파일 분할
                merger.Split(splitOptions);
            }

            Console.WriteLine("소스 문서가 성공적으로 분할되었습니다.");
            Console.WriteLine($"출력 경로: {filePathOut}.");
        }
    }
}

이 예제에서는:

  • 스크립트가 지정된 행 번호에 따라 데이터를 세분화하고 각 세그먼트를 새 CSV 파일로 저장합니다.
  • TextSplitOptions 클래스는 분할 방식에 대한 유연한 구성을 허용합니다.

추가 정보

더 많은 정보와 자료는 다음 링크를 확인하세요:

운영 제한 없이 라이브러리를 사용해 보려면 releases.groupdocs.com에서 무료 평가판을 다운로드하고, 여기에서 임시 라이센스를 받으실 수 있습니다.

코드 예제

GroupDocs.Merger for .NET 라이브러리를 효과적으로 사용하는 방법을 더 잘 이해할 수 있도록, CSV 파일 병합 및 분할을 보여주는 몇 가지 실제 예제를 제공합니다. 이러한 코드 조각은 특정 데이터 처리 요구 사항에 맞게 쉽게 조정할 수 있습니다.

예제: 여러 CSV 파일 병합하기

이 예제는 GroupDocs.Merger 패키지를 사용하여 여러 CSV 파일을 단일 파일로 병합하는 방법을 보여줍니다. 샘플 파일의 경로가 올바르게 설정되어 있는지 확인하세요.

using System;
using System.IO;

namespace GroupDocs.Merger.Examples.CSharp.BasicUsage
{
    internal static class MergeMultipleCsvFiles
    {
        public static void Run()
        {
            Console.WriteLine("여러 CSV 파일을 병합하고 있습니다.");

            // 병합된 CSV를 위한 출력 폴더 및 파일 이름 정의
            string outputFolder = Constants.GetOutputDirectoryPath();
            string outputFile = Path.Combine(outputFolder, "merged_result.csv");
            
            // 병합 프로세스 시작
            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 파일을 개별 라인 파일로 분할합니다.");

            // 원본 CSV 파일의 경로 지정
            string filePath = Constants.SAMPLE_CSV;
            // 분할 결과를 위한 출력 파일 명명 패턴 정의
            string outputFilePath = Path.Combine(Constants.GetOutputDirectoryPath(), "line_{0}.csv");

            // 원하는 행 번호에 따라 분할 옵션 설정
            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에서 다운로드할 수 있습니다. 더욱 충분한 평가를 고려하는 경우 여기에서 임시 라이센스를 획득할 수도 있습니다. 이 임시 라이센스를 통해 제약 없이 라이브러리를 시험해 볼 수 있어 기능을 완전히 탐색할 수 있습니다.