ASP.Netのお勉強

CSVファイルを読み込みGridViewに表示@ASP.Net

CSVファイルを読み込んで、GridViewに表示します。

CSVファイルは、以下の内容です。
1,"名前,A","AAA"
2,"名前
B","BBB"
3,"名前C",""
4,"""","DDD"


画面にGridViewを配置します。

ページロード時に、CSVファイルを読み込んで、
DataTableを作成します。
TextFieldParserを使用して、CSVファイルを読み込みます。

作成したDataTableをGridViewのDataSourceに配置し、
DataBindを行います。

●aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>CSVファイルデータ表示</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
    </form>
</body>
</html>


●aspx.vb

Imports Microsoft.VisualBasic.FileIO
Imports System.Data

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim dt As DataTable
        Dim dr As DataRow
        Dim i As Integer

        'データテーブル
        dt = New DataTable()
        dt.Columns.Add(New DataColumn("項目1", GetType(String)))
        dt.Columns.Add(New DataColumn("項目2", GetType(String)))
        dt.Columns.Add(New DataColumn("項目3", GetType(String)))

        'Microsoft.VisualBasic.FileIO.TextFieldParser
        Using textParser As New TextFieldParser("C:\test.csv", System.Text.Encoding.GetEncoding("UTF-8"))

            'CSVファイル
            textParser.TextFieldType = FieldType.Delimited

            '区切り文字
            textParser.SetDelimiters(",")

            'ファイルの終端までループ
            While Not textParser.EndOfData
                '1行読み込み
                Dim row As String() = textParser.ReadFields()

                'DataRow作成
                i = 0
                dr = dt.NewRow()
                For Each col As String In row
                    dr(i) = col
                    i += 1
                Next

                'DataTableに追加
                dt.Rows.Add(dr)
            End While
        End Using

        'GridViewに設定
        Me.GridView1.DataSource = dt
        Me.GridView1.DataBind()
    End Sub

End Class

Copyright (C) ASP.Netのお勉強. All Rights Reserved.