C# CSVファイルをリストビュー(listView)で表示

概要説明

C#でCSVファイルを読み込んで、リストビューで表示する方法について説明します。

サンプル画面

前提構成

GUI、ファイルの構成は以下の通りです。

■GUI関連構成

■CSVテストファイル構成
(ファイル名:d:\csvsample.csv)

さすけ,千葉県○○市,999-9999
太郎,埼玉県○○市,888-8888
二郎,東京都○○区,777-7777

 

ソース情報

■フォームロード
フォームロード時にリストビューの初期化、及び項目の設定を行っています。
以下がソースです。

private void Form1_Load(object sender, EventArgs e)
{
    //リストビュー初期化
    listView1.View = View.Details;
    listView1.Items.Clear();
    listView1.Columns.Clear();

    //項目1を追加
    ColumnHeader ColumnH1 = new ColumnHeader();
    ColumnH1.Text = "氏名";           //項目名
    ColumnH1.Width = 100;             //横幅
    listView1.Columns.Add(ColumnH1);  //項目の追加

    //項目2を追加
    ColumnHeader ColumnH2 = new ColumnHeader();
    ColumnH2.Text = "住所";
    ColumnH2.Width = 150;
    listView1.Columns.Add(ColumnH2);

    //項目3を追加
    ColumnHeader ColumnH3 = new ColumnHeader();
    ColumnH3.Text = "郵便番号";
    ColumnH3.Width = 100;
    listView1.Columns.Add(ColumnH3);

}

■参照ボタン
参照ボタンが押されたときに、ファイル選択のダイアログを表示して「textBox1」に
反映しています。
以下がソースです。

private void button1_Click(object sender, EventArgs e)
{
    DialogResult result = openFileDialog1.ShowDialog();
    if (result == DialogResult.OK)
    {
        // 選択されたファイル名を格納
        textBox1.Text = openFileDialog1.FileName;
    }
}

■ファイル読み込み実行
ファイル読み込み実行が押されたときに、CSVファイルを1行ずつ読み込み、カンマで文字列の分割を実行し、リストビューに反映しています。
以下がソースです。

private void button2_Click(object sender, EventArgs e)
{

    StreamReader srInf = new StreamReader(textBox1.Text,
                Encoding.GetEncoding(932));

    String filedata;
    //1行ずつファイルを読み込む
    while ((filedata = srInf.ReadLine()) != null)
    {
        //カンマで文字列分割
        string[] csvdata = filedata.Split(',');

        //リストビューの項目に追加
        ListViewItem Listdata = new ListViewItem();
        Listdata.Text = csvdata[0];
        Listdata.SubItems.Add(csvdata[1]);
        Listdata.SubItems.Add(csvdata[2]);
        listView1.Items.Add(Listdata);
    }
    //ファイルをクローズ
    srInf.Close();

}