在C#中,将HTML表格转换成DataTable
对象是一个常见的需求,尤其是在处理网页数据或导入HTML格式数据时。
使用了**HtmlAgilityPack
** 库来解析HTML,并利用System.Data
来创建DataTable
。
首先,确保已经安装了**HtmlAgilityPack
**。如果没有安装,可以通过NuGet包管理器安装:
cs
Install-Package HtmlAgilityPack
然后,你可以使用以下代码来将HTML表格转换为DataTable
:
cs
using System;
using System.Data;
using HtmlAgilityPack;
using System.Collections.Generic;
using System.Linq;
public class HtmlTableToDataTable
{
public static DataTable ConvertHtmlTableToDataTable(string htmlTable)
{
var doc = new HtmlDocument();
doc.LoadHtml(htmlTable);
var table = doc.DocumentNode.SelectSingleNode("//table");
var headers = table.SelectNodes("//tr/th").ToList();
var rows = table.SelectNodes("//tr").Skip(1).ToList(); // Skip header row
var dataTable = new DataTable();
foreach (var header in headers)
{
dataTable.Columns.Add(header.InnerText);
}
foreach (var row in rows)
{
var cells = row.SelectNodes("td").ToList();
var dataRow = dataTable.NewRow();
for (int i = 0; i < cells.Count; i++)
{
dataRow[i] = cells[i].InnerText;
}
dataTable.Rows.Add(dataRow);
}
return dataTable;
}
}
调用ConvertHtmlTableToDataTable
方法,并传递HTML表格的字符串表示来创建DataTable
:
cs
string htmlTable = "<table><tr><th>Column1</th><th>Column2</th></tr><tr><td>Value1</td><td>Value2</td></tr></table>";
DataTable dataTable = HtmlTableToDataTable.ConvertHtmlTableToDataTable(htmlTable);