.net column
.NET開発者のためのブログメディア

C#でのCSVファイルの出力とは?方法をご紹介!

2020年07月06日
SE
CSVファイルの出力の方法ってどんな方法ですか?
PM
"",""(カンマ)でデータとデータを区切った形式で出力する方法です。この記事では、出力方法をご紹介していきます。

C#でのCSVファイルの出力

C#では、CSV形式でファイルの入出力を行うことができます。ここでは、C#でのCSV形式でのファイル出力方法について説明します。

CSV形式で出力することで、他のアプリケーションなどに取り込むこともできます。実際のC#のコードを掲載しているので、照らし合わせてみてください。

CSV形式とは

CSV形式とは、””,””(カンマ)でデータとデータを区切った形式のことで、エクセルでそのまま開くことができます。

また、テキスト形式ですのでメモ帳などのテキストエディタでも開くことができます。

CSV形式は、単語帳を例にすると、以下のようなものです。

このように、CSV形式のファイルでは、1行で1データを表現しています。
※この記事では、CSV形式のファイルのことを「CSVファイル」と記載します。

CSVファイルは、アプリケーション間のデータやり取りなどで使用されます。
例えば、「単語帳アプリでAさんが作成した単語データを、Bさんの単語帳アプリに取り込む。」などのやり取りを、CSVファイルを介して行うことができます。

CSVファイルの出力

C#のコンソールアプリでCSVファイルを出力するプログラムを作ってみます。

CSVファイルを作成するためには、コードの先頭に

を付与するのを忘れないでください。
Systemは、コンソールにメッセージを出力するため、System.IOは、StreamWriterクラスを使うため、System.Textは、Encoding.UTF8の定数を使うために必要です。

また、プログラムの実行前に「C:\test」フォルダを作成しておいてください。作成していないとCSVファイルが出力されません。

以下が前述した単語帳のCSVファイルを作成するサンプルです。

プログラムを実行すると、C:\testフォルダにtest.csvが出力されていることが分かります。
C#ではこのようにしてCSVファイルを作成します。

ファイル出力モード(上書き/追記)

ここでは、ファイルを開く際に使用したC#のStreamWriterクラスの出力モードについて見ていきましょう。

先ほどのサンプルでは、以下のように記述しました。
第1引数はファイルの出力先、第2引数はファイル出力モード、第3引数はエンコーディングです。

ファイル出力モードをfalseにすることで、毎回上書きでCSVファイルを作成します。

それを確認するために、もう一度先ほどのプログラムを実行してみてください。
何度実行しても以下のファイルが出力されます。

では、StreamWriterクラスの第2引数をtrueに変更して実行するとどうなるでしょうか。

以下のように、既存のtest.csvに追記されて保存されていることが分かります。

ファイルが存在しない場合に、上書きモードに設定してもファイルは作成されます。

出力モードは、省略することもできます。

こうした場合、自動的に上書きモードになります。

用途に応じて、出力モードを記載してください。

エンコーディング

ここでは、C#のStreamWriterクラスのエンコーディングについて見ていきましょう。
StreamWriterクラスの第3引数を以下のように変更してください。

こうすることでUnicodeのファイルを出力することができます。

また、以下のようにエンコーディングを省略することもできます。

エンコーディングを省略した場合、デフォルトのエンコーディングが適用されます。
用途に応じてエンコードを指定するようにしてください。

CSVヘッダ

CSVファイルはヘッダ部とデータ部に分かれていることが一般的です。

前述のサンプルでいうところの、

はデータ部になります。このファイルはデータ部のみのCSVファイルということになります。

ヘッダ部とは、カンマで区切った何個目のフィールドが何の情報なのか?を記述したものです。
単語帳の例でいうと、ヘッダ部は

などとするとよいでしょう。

プログラムで書くと、以下のようになります。

こうすることで、ヘッダ部とデータ部のCSVファイルが出力されます。

ヘッダ部を記載することで、カンマで区切られたデータ部の1列目が日本語で、2列目が英語であることが分かりやすくなります。

また、CSVファイルの取り込みを考えた場合、「jpの列だけ取り込む」などもできるようになりますので、拡張性が増します。

CSVファイルに出力する場合、データ部だけでも問題ありませんが、ヘッダ部も含めて出力するとよいでしょう。

SE
出力するデータによって、方法が違うのですね。
PM
CSVファイルの出力必要な手法なので、覚えておくと良いでしょう。

CSVファイルの出力方法を試してみよう

アプリケーション間のデータやり取りに、CSVファイルを使うことがあります。C#では、StreamWriterクラスを使用することで、CSVファイルの出力先、出力モード、エンコーディングを指定して出力することができます。出力モード、エンコーディングは省略することも可能です。また、CSVファイルはヘッダ部とデータ部含めて出力するようにしましょう。

C#では、CSVファイルの出力だけでなく入力もできますので、ぜひご自身でコーディングして確かめてみてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags

Jobs