概要

データ管理の世界では、カンマ区切り値(CSV)ファイルの取り扱いは一般的な要件です。これらのファイルは、スプレッドシートやデータベースなどの表形式データを保存するために広く使用されており、その単純さと読みやすさが特長です。CSVファイルをプログラム的にマージおよび分割できることは、特に大量のデータを扱う場合に、時間の節約とワークフローの効率化を実現します。

この記事では、GroupDocs.Merger for .NETライブラリを使用してCSVファイルをマージおよび分割する方法について、ステップバイステップでガイドします。

CSVファイルをマージする方法

複数のCSVファイルを1つのドキュメントにマージすることは、データの取り扱いやレポート作成を大幅に簡素化できます。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ファイルを1つのファイルにマージする方法を示します。
    /// </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ファイルを1つのファイルにマージする方法を示します。サンプルファイルへのパスが正しく設定されていることを確認してください。

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); // 2番目のCSVファイルを追加
                merger.Join(Constants.SAMPLE_CSV_3); // 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からダウンロードできます。もっと広範な評価を希望する方は、こちらから一時ライセンスを取得することもできます。この一時ライセンスを使用することで、制限なくライブラリの機能を試すことができます。