ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 2864|ตอบกลับ: 1

[VB.NET] การอ่านข้อมูลไฟล์ CSV จากลิ้งค์ (URL) โดยตรง (ข้อมูลการเฝ้าระวัง COVID-19 ประเทศไทย)

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971



CSV ย่อมาจาก Comma Separated Value เป็นไฟล์ข้อความประเภทหนึ่ง ที่ใช้สำหรับเก็บข้อมูลในรูปแบบตาราง โดยใช้เครื่องหมายจุลภาค หรือคอมม่า (,) ในการแบ่งแต่ละคอลัมภ์ โดยปกติเราสามารถบันทึกไฟล์จาก Microsoft Excel ออกมาเป็น CSV ไฟล์ได้โดยตรง หรืออาจได้ไฟล์ CSV จากการ export ไฟล์จากระบบฐานข้อมูลอื่นๆ ... บทความชุดนี้จะใช้การอ่านไฟล์ CSV จากลิ้งค์โดยตรง คือจะไม่บันทึกไฟล์ CSV ลงในเครื่องคอมฯก่อน แต่จะใช้การอ่านข้อมูลจากไฟล์ CSV ผ่านเว็บไซต์ไปเลย โดยแอดมินจะใช้ ข้อมูลการเฝ้าระวัง COVID-19 ของประเทศไทย ...

ข้อมูลไฟล์ CSV (Comma Separated Value) ...


มาดูโค้ดกันเถอะ ...
  1. Imports System.Net
  2. Imports System.IO

  3. Public Class frmWatchCovid19

  4.     Private Sub frmWatchCovid19_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  5.         lblCount.Text = ""
  6.         txtURL.Text = "https://raw.githubusercontent.com/M4R14/covid-19-thailand/master/data.csv"
  7.     End Sub

  8.     Private Sub btnReadCSV_Click(sender As System.Object, e As System.EventArgs) Handles btnReadCSV.Click
  9.         Try
  10.             '//
  11.             Dim tbl As New DataTable
  12.             tbl.Columns.Add("Date", GetType(String))
  13.             tbl.Columns.Add("Check", GetType(Integer))
  14.             tbl.Columns.Add("Confirmed", GetType(Integer))
  15.             tbl.Columns.Add("Recovered", GetType(Integer))
  16.             tbl.Columns.Add("Deaths", GetType(Integer))
  17.             '/
  18.             Dim strReader As New StringReader(DownloadCSV(txtURL.Text))
  19.             Dim line = strReader.ReadLine
  20.             Dim RowCount As Integer = 0
  21.             While String.IsNullOrEmpty(line) = False Or Not IsNothing(line)
  22.                 '// Split comma delimited.
  23.                 Dim parts = line.Split(","c)
  24.                 If parts(0).Trim.ToLower <> "date" Then
  25.                     tbl.Rows.Add(New Object() { _
  26.                             parts(0).ToString.Trim, _
  27.                             parts(1).ToString.Trim, _
  28.                             parts(2).ToString.Trim, _
  29.                             parts(3).ToString.Trim, _
  30.                             parts(4).ToString.Trim})
  31.                     RowCount += 1
  32.                 End If
  33.                 '// Get new line.
  34.                 line = strReader.ReadLine
  35.             End While
  36.             '//
  37.             dgvData.DataSource = tbl
  38.             lblCount.Text = "จำนวน: " & RowCount & " รายการ."
  39.             '// Setup DataGridView
  40.             Call InitDataGrid()

  41.         Catch ex As Exception
  42.             MessageBox.Show(ex.Message)
  43.         End Try
  44.     End Sub

  45.     ' / -----------------------------------------------------------------------------
  46.     ' / Use StreamReader class to download csv without the need to save it locally.
  47.     Public Function DownloadCSV(ByVal url As String) As String
  48.         Dim httpWebRequest As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest)
  49.         Dim httpWebResponse As HttpWebResponse = CType(httpWebRequest.GetResponse(), HttpWebResponse)
  50.         Dim streamReader As StreamReader = New StreamReader(httpWebResponse.GetResponseStream())
  51.         Dim results As String = streamReader.ReadToEnd()
  52.         streamReader.Close()
  53.         Return results
  54.     End Function

  55.     Private Sub InitDataGrid()
  56.         '//
  57.         With dgvData
  58.             .RowHeadersVisible = True
  59.             .AllowUserToAddRows = False
  60.             .AllowUserToDeleteRows = False
  61.             .AllowUserToResizeColumns = True
  62.             .AllowUserToResizeRows = False
  63.             .SelectionMode = DataGridViewSelectionMode.FullRowSelect
  64.             .MultiSelect = False
  65.             '// Data rows
  66.             .Font = New Font("Tahoma", 11)
  67.             .RowTemplate.MinimumHeight = 27
  68.             .RowTemplate.Height = 27
  69.             '// Column Header
  70.             .ColumnHeadersHeight = 27
  71.             .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
  72.             '// -------------- Dot Net Bar ----------------
  73.             '// Autosize Column
  74.             .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
  75.             '.AutoResizeColumns()
  76.             '// Even-Odd Color
  77.             .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
  78.             ' Adjust Header Styles
  79.             With .ColumnHeadersDefaultCellStyle
  80.                 .BackColor = Color.Navy
  81.                 .ForeColor = Color.Black
  82.                 .Font = New Font("Tahoma", 12, FontStyle.Bold)
  83.             End With
  84.             .RowHeadersDefaultCellStyle.SelectionBackColor = Color.Empty
  85.         End With
  86.         '//
  87.         With dgvData.Columns(0)
  88.             .Name = "Date"
  89.             .HeaderText = "วันที่"
  90.             .ReadOnly = True
  91.         End With
  92.         With dgvData.Columns(1)
  93.             .Name = "check"
  94.             .HeaderText = "เฝ้าระวัง"
  95.             .DefaultCellStyle.Format = "n0"
  96.         End With
  97.         With dgvData.Columns(2)
  98.             .Name = "Confirmed"
  99.             .HeaderText = "ยืนยัน"
  100.         End With
  101.         With dgvData.Columns(3)
  102.             .Name = "Recovered"
  103.             .HeaderText = "รักษาหาย"
  104.         End With
  105.         With dgvData.Columns(4)
  106.             .Name = "Deaths"
  107.             .HeaderText = "เสียชีวิต"
  108.         End With
  109.         '//
  110.         For i = 1 To 4
  111.             With dgvData.Columns(i)
  112.                 .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
  113.                 .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  114.                 .ReadOnly = True
  115.             End With
  116.         Next
  117.     End Sub

  118. End Class
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 15:31:11 | ดูโพสต์ทั้งหมด

ขอบคุณครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 08:45 , Processed in 0.202685 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้