北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

【VB.NET】 CSV ファイルの読み込みはこんなに簡単・・・TextFieldParser

2016-05-06 12:17:20 | 北窓舎
CSV ファイルの読み込むには
TextFileldParser を使えばとても簡単。

以下では、タブ区切りの CSV ファイルを読み込むサンプルをご紹介します。

前提は・・・
 ① 言語は VB.NET (C# に変えるのも簡単なはず)
 ② フォーム上に DataGridView とボタンがあります
 ③[Import]ボタンで、CSV ファイルのデータを DataGridView に格納します。

データ読み込み前のフォーム・・・
  

読み込む CSV ファイルの内容(デリミターはタブ。 テキストエディタで開いています)
  

[Import]ボタンをクリックすると・・・
  

[Import]ボタンのコード:
   ★ 各行の先頭には数個の全角スペースを入れています
(ブログ記事で見やすくするため)
     コピペしたときは削除してください。
---------- ここから ---------------------------------------------------------------------------
' ---[Import]CSV ファイル(タブ区切り)を読み込み、DataGridView1 に格納する
Private Sub btn_Import_Click(sender As Object, e As EventArgs) Handles btn_Import.Click
  Dim textFile As FileIO.TextFieldParser ' -- 入力するファイル
  ' --- 入力ファイルを開く
  textFile = New FileIO.TextFieldParser("C:\temp\test.csv") ' -- デフォルト encoding は UTF8
  ' --- デリミターをタブと定義する
  textFile.TextFieldType = FileIO.FieldType.Delimited
  textFile.SetDelimiters(vbTab)    ' -- カンマ区切りの場合はカッコ内を "," にします
  ' --- 行を文字型配列(currentRow)に読み込み、各列を DataGridView に格納する
  Dim currentRow As String() ' -- 文字型配列
  Dim myRow As Integer = 0
  Dim myCol As Integer = 0
  ' ---▼▼ 行ループ
  While Not textFile.EndOfData
    Me.DataGridView1.Rows.Add() ' -- DataGridView に新規行を追加
    currentRow = textFile.ReadFields() ' -- 1行を文字型配列に格納
    Dim currentColumn As String
    ' ---▼ 列ループ:1行分の列を埋める
    For Each currentColumn In currentRow
      Me.DataGridView1(myCol, myRow).Value = currentColumn
      myCol += 1
    Next ' --▲ 列ループ
    myCol = 0
    myRow += 1
  End While ' --▲▲ 行ループ
  ' --- 入力ファイルを閉じる
  textFile.Close()
  ' ---
  Me.DataGridView1.Rows.RemoveAt(0) ' -- 先頭行は見出し行なので削除
End Sub
---------- ここまで ---------------------------------------------------------------------------

なお、本家の説明「TextFieldParser クラス」もご参照ください。
詳細な説明が得られます。

姉妹編: CSV ファイルへの出力(エクスポート)
    【VB.NET】 CSV ファイルにエクスポート はここから

2017年・新春お祝い編
    お年賀がわりに・・・ DataGridView のエクスポート
    (zip ファイルをダウンロードできます)
---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・


ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・
コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 【VB.NET】 CSV ファイルへの... | トップ | 明日は何の日? Windows Upda... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

北窓舎」カテゴリの最新記事