NEWS

[C#] Hướng dẫn get dữ liệu từ Table HTML website to DataTable

[C#] Hướng dẫn get dữ liệu từ Table HTML website to DataTable
Đăng bởi: Thảo Meo - Lượt xem: 22250 12:42:23, 18/12/2017C#   In bài viết

Bài viết hôm nay, mình sẽ hướng dẫn các bạn đọc từ dữ liệu Table HTML có sẵn trên website về DataTable C#.

[C#] Hướng dẫn Convert Table HTML sang DataTable C#

Bài viết này mình hướng dẫn sử dụng thư viện HTML AgilityPack . Các bạn có thể tham khảo tại trang chủ: http://html-agility-pack.net/

Dưới đây mình sẽ demo lấy dữ liệu từ địa chỉ website có chứa table vào datatable c#

Ví dụ: Mình có đường dẫn sau:

https://coinmarketcap.com/currencies/Ethereum/historical-data/?start=20170918&end=20171218

Dưới đây là table trang web:

table website

 

Giao diện ứng dụng: 

Giao diện demo ứng dụng

Source code C#:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HtmlAgilityPack;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {



        }
        public DataTable convert_HTML_to_DataTable(string url)
        {

            var web = new HtmlWeb();
            var doc = web.Load(url);

            var nodes = doc.DocumentNode.SelectNodes("//table/thead/tr");
            var bodys = doc.DocumentNode.SelectNodes("//table/tbody/tr");
            var table = new DataTable("MyTable");

            var headers = nodes[0]
                .Elements("th")
                .Select(th => th.InnerText.Trim());
            foreach (var header in headers)
            {
                table.Columns.Add(header);
            }

            var rows = bodys.Select(tr => tr
                .Elements("td")
                .Select(td => td.InnerText.Trim())
                .ToArray());
            foreach (var row in rows)
            {
                table.Rows.Add(row);
            }
            return table;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt = convert_HTML_to_DataTable(txtUrl.Text);
            dataGridView1.DataSource = dt;
        }
    }
}

DOWNLOAD SOURCE

Happy Coding :)

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn get dữ liệu từ Table HTML website to DataTable
Đăng bởi: Thảo Meo - Lượt xem: 22250 12:42:23, 18/12/2017C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.