|
CSV ย่อมาจาก Comma Separated Value เป็นไฟล์ข้อความประเภทหนึ่ง ที่ใช้สำหรับเก็บข้อมูลในรูปแบบตาราง โดยใช้เครื่องหมายจุลภาค หรือคอมม่า (,) ในการแบ่งแต่ละคอลัมภ์ โดยปกติเราสามารถบันทึกไฟล์จาก Microsoft Excel ออกมาเป็น CSV ไฟล์ได้โดยตรง หรืออาจได้ไฟล์ CSV จากการ export ไฟล์จากระบบฐานข้อมูลอื่นๆ ... บทความชุดนี้จะใช้การอ่านไฟล์ CSV จากลิ้งค์โดยตรง คือจะไม่บันทึกไฟล์ CSV ลงในเครื่องคอมฯก่อน แต่จะใช้การอ่านข้อมูลจากไฟล์ CSV ผ่านเว็บไซต์ไปเลย โดยแอดมินจะใช้ ข้อมูลการเฝ้าระวัง COVID-19 ของประเทศไทย ...
ข้อมูลไฟล์ CSV (Comma Separated Value) ...
มาดูโค้ดกันเถอะ ...
- Imports System.Net
- Imports System.IO
- Public Class frmWatchCovid19
- Private Sub frmWatchCovid19_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- lblCount.Text = ""
- txtURL.Text = "https://raw.githubusercontent.com/M4R14/covid-19-thailand/master/data.csv"
- End Sub
- Private Sub btnReadCSV_Click(sender As System.Object, e As System.EventArgs) Handles btnReadCSV.Click
- Try
- '//
- Dim tbl As New DataTable
- tbl.Columns.Add("Date", GetType(String))
- tbl.Columns.Add("Check", GetType(Integer))
- tbl.Columns.Add("Confirmed", GetType(Integer))
- tbl.Columns.Add("Recovered", GetType(Integer))
- tbl.Columns.Add("Deaths", GetType(Integer))
- '/
- Dim strReader As New StringReader(DownloadCSV(txtURL.Text))
- Dim line = strReader.ReadLine
- Dim RowCount As Integer = 0
- While String.IsNullOrEmpty(line) = False Or Not IsNothing(line)
- '// Split comma delimited.
- Dim parts = line.Split(","c)
- If parts(0).Trim.ToLower <> "date" Then
- tbl.Rows.Add(New Object() { _
- parts(0).ToString.Trim, _
- parts(1).ToString.Trim, _
- parts(2).ToString.Trim, _
- parts(3).ToString.Trim, _
- parts(4).ToString.Trim})
- RowCount += 1
- End If
- '// Get new line.
- line = strReader.ReadLine
- End While
- '//
- dgvData.DataSource = tbl
- lblCount.Text = "จำนวน: " & RowCount & " รายการ."
- '// Setup DataGridView
- Call InitDataGrid()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- End Sub
- ' / -----------------------------------------------------------------------------
- ' / Use StreamReader class to download csv without the need to save it locally.
- Public Function DownloadCSV(ByVal url As String) As String
- Dim httpWebRequest As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
- Dim httpWebResponse As HttpWebResponse = CType(httpWebRequest.GetResponse(), HttpWebResponse)
- Dim streamReader As StreamReader = New StreamReader(httpWebResponse.GetResponseStream())
- Dim results As String = streamReader.ReadToEnd()
- streamReader.Close()
- Return results
- End Function
- Private Sub InitDataGrid()
- '//
- With dgvData
- .RowHeadersVisible = True
- .AllowUserToAddRows = False
- .AllowUserToDeleteRows = False
- .AllowUserToResizeColumns = True
- .AllowUserToResizeRows = False
- .SelectionMode = DataGridViewSelectionMode.FullRowSelect
- .MultiSelect = False
- '// Data rows
- .Font = New Font("Tahoma", 11)
- .RowTemplate.MinimumHeight = 27
- .RowTemplate.Height = 27
- '// Column Header
- .ColumnHeadersHeight = 27
- .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
- '// -------------- Dot Net Bar ----------------
- '// Autosize Column
- .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
- '.AutoResizeColumns()
- '// Even-Odd Color
- .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
- ' Adjust Header Styles
- With .ColumnHeadersDefaultCellStyle
- .BackColor = Color.Navy
- .ForeColor = Color.Black
- .Font = New Font("Tahoma", 12, FontStyle.Bold)
- End With
- .RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty
- End With
- '//
- With dgvData.Columns(0)
- .Name = "Date"
- .HeaderText = "วันที่"
- .ReadOnly = True
- End With
- With dgvData.Columns(1)
- .Name = "check"
- .HeaderText = "เฝ้าระวัง"
- .DefaultCellStyle.Format = "n0"
- End With
- With dgvData.Columns(2)
- .Name = "Confirmed"
- .HeaderText = "ยืนยัน"
- End With
- With dgvData.Columns(3)
- .Name = "Recovered"
- .HeaderText = "รักษาหาย"
- End With
- With dgvData.Columns(4)
- .Name = "Deaths"
- .HeaderText = "เสียชีวิต"
- End With
- '//
- For i = 1 To 4
- With dgvData.Columns(i)
- .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
- .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- .ReadOnly = True
- End With
- Next
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน
x
|