讀取 CSV 檔案 放入 GridView

 

   default.aspx (必要部分)
 
   <form id="form1" runat="server">
   <div>
      <asp:FileUpload ID="FileUpload1" runat="server" />
      <br /><br />
      <asp:Button ID="Button2" runat="server" Text="Submit" />
      <br /><br />
      <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
         PageIndex="0" PageSize="30" PagerSettings-PageButtonCount="15">
         <PagerSettings PageButtonCount="15" Position="Bottom" />
   </asp:GridView>
   </div>
   </form>
 

 

   default.aspx.vb (必要部分)
 
   Imports System.Data
   Imports System.IO
   Imports System.Web
   Imports System.Configuration
   Imports System.Web.UI
   Imports System.Web.Security
   Imports System.Web.UI.HtmlControls
   Imports System.Web.UI.WebControls
   Imports System.Web.UI.WebControls.WebParts
 
   Partial Class _Default
      Inherits System.Web.UI.Page
 
      Shared dt As DataTable
 
      Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
 
         Dim reader As System.IO.StreamReader = New System.IO.StreamReader(Me.FileUpload1.PostedFile.InputStream)
         Dim csv As String = reader.ReadToEnd()
 
         dt = ConvertCSVtoDataTable(csv)
         GridView1.DataSource = dt
         GridView1.DataBind()
 
      End Sub
 
      Public Function ConvertCSVtoDataTable(ByVal csvContent As String) As DataTable
 
         Dim t As New DataTable
         Dim sr As New System.IO.StringReader(csvContent)
         Dim line As String = Nothing
         Dim i As Integer
         Dim p As String()
 
         line = sr.ReadLine()
         p = line.Split(",")
 
         If i = 0 Then
            For Each s As String In p
               t.Columns.Add(s, GetType(String))
            Next
         End If
 
         line = sr.ReadLine()
         i = 0
 
         While line IsNot Nothing And i < 1750
            p = line.Split(",")
            t.Rows.Add(p)
            line = sr.ReadLine()
            i += 1
         End While
 
         Return t
      End Function
 
   End Class