C# で CSV ファイルにデータを書き込む

  1. CsvHelper クラスのメソッドを使用して CSV ファイルにデータを書き込む C# プログラム
  2. WriteAllText() メソッドを使用してデータを CSV ファイルに書き込む C# プログラム

CSV ファイルは整理された方法でデータを保存するのに非常に役立ちます。さまざまなプログラミング言語を使用して、CSV ファイルとの間でデータを読み書きできます。

C# では、CSV ファイルを読み取ったり、CSV ファイルにデータを書き込んだりするためのさまざまな方法があります。この記事では、CSV ファイルにデータを書き込むさまざまな方法に焦点を当てています。

CsvHelper クラスのメソッドを使用して CSV ファイルにデータを書き込む C# プログラム

C# には、CSV ファイルを読み書きするための CsvHelper という名前のライブラリがあります。このライブラリはデフォルトでは提供されていません。むしろ、ダウンロードする必要があります。これは、CSV ファイルを読み書きするための GetRecordsWriteRecords のようなメソッドを提供します。これは CSV ファイルを簡単に読み書きするための効率的なライブラリです。

次のコード例は、CSV ファイルを作成してデータを書き込むプログラムを示しています。

コード例:

using System;
using System.IO;
using System.Text;
using CsvHelper;

namespace CsvExample
{
    public class Project
    {
        public string PersonName { get; set; }
        public string Title { get; set; }
    }

    public class Program
    {

        static void Main(string[] args)
        {
            var data = new[]
            {
                new Project { CustomerName = "Olivia", Title = "Mother"},
                new Project { CustomerName = "Lili", Title = "Elder Sister"}
            };

            using (var mem = new MemoryStream())
            using (var writer = new StreamWriter(mem))
            using (var csvWriter = new CsvWriter(writer))
            {
                csvWriter.Configuration.Delimiter = ";";
                csvWriter.Configuration.HasHeaderRecord = true;
                csvWriter.Configuration.AutoMap<Project>();

                csvWriter.WriteHeader<Project>();
                csvWriter.WriteRecords(data);

                writer.Flush();
                var result = Encoding.UTF8.GetString(mem.ToArray());
                Console.WriteLine(result);
            }
        }
    }
}

出力:

PersonName;Title
Olivia;Mother
Lili;Elder Sister

WriteAllText() メソッドを使用してデータを CSV ファイルに書き込む C# プログラム

WriteAllText() メソッドはファイルを作成し、データをファイルに書き込んでからファイルを閉じます。ファイルがすでに存在する場合は、ファイル内のデータを書き換えます。

このメソッドを使用するための正しい構文は次のとおりです。

WriteAllText (StringPath, StringContents);

コード例:

using System;
using System.IO;
using System.Text;

namespace CsvExample
{
  
    public class Program
    {

        static void Main(string[] args)
        {
            string strFilePath = @"D:\New folder\Data.csv";
            string strSeperator = ",";
            StringBuilder sbOutput = new StringBuilder();
 
            int[][] inaOutput = new int[][]{
            new int[]{1000, 2000, 3000, 4000, 5000},
            new int[]{6000, 7000, 8000, 9000, 10000},
            new int[]{11000, 12000, 13000, 14000, 15000}
        };

        int ilength = inaOutput.GetLength(0);
        for (int i = 0; i &amp;lt; ilength; i++)
            sbOutput.AppendLine(string.Join(strSeperator, inaOutput[i]));
 
        // Create and write the csv file
        File.WriteAllText(strFilePath, sbOutput.ToString());
 
        // To append more lines to the csv file
        File.AppendAllText(strFilePath, sbOutput.ToString());
        }
    }
}

出力:

//CSV file created in the given directory

ArgumentExceptionArgumentNullExceptionPathTooLongExceptionDirectoryNotFoundExceptionIOExceptionUnauthorizedAccessException などのいくつかの例外が発生します。これらの例外は、try-catch ブロックを使用して処理できます。

関連記事 - Csharp CSV file

  • C# で CSV ファイルを読み込み、その値を配列に格納する
  • comments powered by Disqus