使用 HtmlAgilityPack 庫來將 HTML 表格轉換為 DataTable。 首先,確保已經安裝了 HtmlAgilityPack 包。可以通過 NuGet 包管理器或者通過命令行安裝。 按照以下步驟將 HTML 表格轉換為 DataTable: 導入命名空間: csharpCopy C ...
使用 HtmlAgilityPack 庫來將 HTML 表格轉換為 DataTable。
首先,確保已經安裝了 HtmlAgilityPack 包。可以通過 NuGet 包管理器或者通過命令行安裝。
按照以下步驟將 HTML 表格轉換為 DataTable:
- 導入命名空間:
using HtmlAgilityPack;
- 創建一個方法來進行轉換:
public static DataTable ConvertHtmlTableToDataTable(string html)
{
DataTable dataTable = new DataTable("MyDataTable");
// 載入 HTML 字元串
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
// 找到表格節點
HtmlNode tableNode = doc.DocumentNode.SelectSingleNode("//table");
if (tableNode != null)
{
// 找到所有的表頭行和數據行
IEnumerable<HtmlNode> headerRows = tableNode.SelectNodes("tr[th]");
IEnumerable<HtmlNode> dataRows = tableNode.SelectNodes("tr[td]");
// 添加表頭列到 DataTable
if (headerRows != null)
{
foreach (HtmlNode headerRow in headerRows)
{
foreach (HtmlNode headerCell in headerRow.SelectNodes("th"))
{
dataTable.Columns.Add(headerCell.InnerText.Trim());
}
}
}
// 添加數據列到 DataTable
if (dataRows != null)
{
foreach (HtmlNode dataRow in dataRows)
{
DataRow row = dataTable.NewRow();
for (int i = 0; i < dataTable.Columns.Count; i++)
{
HtmlNode dataCell = dataRow.SelectNodes("td")[i];
row[i] = dataCell.InnerText.Trim();
}
dataTable.Rows.Add(row);
}
}
}
return dataTable;
}
- 調用方法進行轉換:
string html = "<table>...</table>"; // 假設這裡是你的 HTML 表格字元串
DataTable dataTable = ConvertHtmlTableToDataTable(html);
註意:這段代碼假設 HTML 表格的結構是標準的,即包含表頭行(<tr>
元素中包含 <th>
元素)和數據行(<tr>
元素中包含 <td>
元素)。如果 HTML 結構不符合標準,可能需要進行適當的修改來適應實際情況。