【Visual Studio】CSVを読み込んでDataGridViewに登録する


この記事はプロモーションを含みます。

C#

C#でCSVファイルを読み込み、DataGridViewに登録する方法を解説します。

デザインコード

Windowsフォームのデザインコード「Form1.Designer.cs」になります。

namespace WinFormsApp2
{
    partial class Form1
    {
        /// <summary>
        ///  Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        ///  Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            SuspendLayout();
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 15F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(234, 261);
            Name = "Form1";
            Text = "Form1";
            Load += Form1_Load;
            ResumeLayout(false);
        }

        #endregion
    }
}

ソースコード

CSVを読み込んで、DataGridViewに適用するソースコードです。

using System.Data;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            // 読み込むCSVファイル
            string csv = @"C:\Workspace\input.csv";

            // DataGridViewのインスタンスを作成
            DataGridView dataGridView = new() {
                Size = new System.Drawing.Size(200, 200),
                Location = new System.Drawing.Point(10, 10),
                AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
            };
            // フォームにDataGridViewを追加
            this.Controls.Add(dataGridView);

            // データテーブルの作成
            DataTable dataTable = new();
            dataTable.Columns.Add("カラム1", typeof(string));
            dataTable.Columns.Add("カラム2", typeof(string));
            dataTable.Columns.Add("カラム3", typeof(string));

            // インスタンスの作成
            using StreamReader reader = new(csv);

            // CSVを読み込み1行ずつ最終行までループ
            while (!reader.EndOfStream)
            {
                // 読み込んだCSVの行情報
                string line = reader.ReadLine() ?? "";

                // 行をカンマ区切りで分割
                string[] values = line.Split(',');

                // DataGridViewにデータを登録
                dataTable.Rows.Add(values[0], values[1], values[2]);
            }
            // DataGridViewにデータをバインド(登録)
            dataGridView.DataSource = dataTable;
        }
    }
}

15行目で読み込むCSVファイルを指定します。

19行目でDataGridViewの大きさを指定しています。
DataGridViewの大きさより、フォームの大きさが小さい場合は、DataGridViewが見切れてしまうので注意が必要です。

26~30行目の処理で、カラムの作成を行っています。
カラム名を変更する場合は、ここを修正することで対応できます。

実行イメージ

ここでは、読み込むCSVファイルと実行した時のイメージを記載しています。
以下は、読み込むCSVファイルです。

11,12,13
21,22,23
31,32,33

DataGridViewへ登録した時のイメージです。

コメント

タイトルとURLをコピーしました