[ VB.NET / C# ] CSVファイルからデータグリッドビューにデータをインポートする

Pocket

CSV ファイルのデータをデータグリッドビューにインポートするサンプルコードになります。本サンプルでは、CSV ファイルの読み込みに  Microsoft.VisualBasic.FileIO.TextFieldParser クラスを使用しているので C# で使用する場合には、参照の追加で Microsoft.VisualVasic を組み込む必要があります。

スポンサーリンク

また、データグリッドビューには事前に列を1つ以上追加していないと以下のエラーが発生しますので、列の追加も行う必要があります。

列を含んでいない DataGridView コントロールに行を追加することはできません。列を最初に追加してください。

VB.NET

Imports Microsoft.VisualBasic.FileIO
Imports System.Text

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim parser As TextFieldParser = New TextFieldParser("E:\test.csv", Encoding.GetEncoding("Shift_JIS"))
        parser.TextFieldType = FieldType.Delimited
        parser.SetDelimiters(",") ' 区切り文字はコンマ

        ' データをすべてクリア
        DataGridView1.Rows.Clear()

        While (Not parser.EndOfData)
            Dim row As String() = parser.ReadFields() ' 1行読み込み
            ' 読み込んだデータ(1行をDataGridViewに表示する)
            DataGridView1.Rows.Add(row)

        End While
    End Sub
End Class

C#

using System.Text;
using Microsoft.VisualBasic.FileIO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            TextFieldParser parser = new TextFieldParser(@"E:\test.csv", Encoding.GetEncoding("Shift_JIS"));
            parser.TextFieldType = FieldType.Delimited;
            parser.SetDelimiters(","); // 区切り文字はコンマ

            // データをすべてクリア
            dataGridView1.Rows.Clear();

            while (!parser.EndOfData)
            {
                string[] row = parser.ReadFields(); // 1行読み込み
                // 読み込んだデータ(1行をDataGridViewに表示する)
                dataGridView1.Rows.Add(row);
            }
        }
    }
}

C# の場合、Microsoft.VisualBasic の参照を追加していない場合には以下のエラーが出ます。

型または名前空間名 ‘FileIO’ は名前空間 ‘Microsoft.VisualBasic’ に存在しません。
アセンブリ参照が不足しています。

参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *