如何使用 C# 將 HTML 表格匯出到 Excel
本指南示範如何使用 IronXL 和 HTML Agility Pack 在 C# 中將 HTML 表格資料匯出到 Excel 文件,為對合規性至關重要的應用程式提供企業級的解析、格式化和資料完整性控制,而無需依賴 Office。
在商業應用中,無論是資料遷移、報表產生或需要進一步分析的網頁,提取 HTML 表格資料並將其轉換為 Excel 表格都是一個常見的需求。 本文提供了將 HTML 資料表內容匯出為 Excel 格式的簡單步驟。 雖然有些庫提供了轉換 HTML 表格的內建方法,但這些方法通常在文件格式或支援的功能方面有限制。
當您需要在 C# 中將 HTML 表格匯出到 Excel 時,了解 Excel 工作表結構和 HTML 表格之間的關係至關重要。 本指南示範如何有效率地將資料從 HTML 表格轉換為 Excel 格式,以建立保持資料完整性的專業 Excel 工作表輸出。
IronXL提供了一種更靈活的方式將 HTML 表格內容轉換為 Excel 工作表,它將強大的Excel 操作功能與 HTML 解析相結合,以 C# 匯出 HTML 表格資料。 無論您需要從 URL 下載資料還是處理資料庫中的內容,此解決方案都能處理各種輸入場景,同時保持企業安全標準。
為什麼選擇 IronXL 匯出 HTML 表格資料?
IronXL為何適合企業環境?
IronXL擅長建立和操作Excel 文件,無需安裝 Microsoft Office ,因此非常適合伺服器環境和跨平台應用程式。 該程式庫支援部署到 Azure 、 AWS Lambda 函數和Docker 容器,確保與現代雲端架構相容。 IronXL 與強大的 HTML 檔案和內容解析器HTML Agility Pack搭配使用時,就成為將任何 HTML 表格結構轉換為 Excel 表格資料的多功能解決方案。 這種方法可以與.NET 應用程式無縫協作,並透過優化的效能特性有效地處理大型資料集。
對於需要嚴格遵守規定的企業環境,IronXL 提供全面的安全文檔,並支援密碼保護的工作簿和加密的工作表。 該程式庫還可以在Linux 伺服器和macOS 系統上無縫運行,提供真正的跨平台相容性,這對於多樣化的企業基礎架構至關重要。
IronXL 與其他 Excel 庫相比如何?
與 Syncfusion Excel 函式庫的 XlsIO 等函式庫不同,後者提供的ImportHtmlTable函數僅限於特定的 HTML 格式和表格結構,IronXL 的方法使開發人員能夠完全控制解析和轉換過程。 這種靈活性意味著開發人員可以處理複雜的場景,例如巢狀表、自訂資料格式和選擇性列提取,而這些是僵化的內建方法無法實現的。 預設設定適用於大多數使用場景,但您可以自訂每個細節,包括儲存格字體和大小、背景圖案和顏色以及邊框對齊方式。
IronXL豐富的 API 參考為開發人員提供了對 Excel 操作各個方面的精細控制,從條件格式設定到圖表建立。 這種控製程度在處理需要特定格式以滿足監管合規性或公司標準的企業資料時尤其重要。
IronXL 提供哪些進階功能?
此外,IronXL 還提供全面的 Excel 功能,包括公式支援、儲存格樣式、多工作表管理以及各種匯出格式(XLSX、XLS、 JSON和 CSV 檔案)。 該庫支援求和、平均值、最小值和最大值等數學函數,可以直接在生成的 Excel 檔案中進行複雜的計算。 您甚至可以建立圖表、匯出為 PDF以及管理隱藏欄位數據,使其成為滿足 Excel 自動化需求的完整解決方案,而不僅僅是簡單的 HTML 表格轉換。 無論是處理DataTable 物件還是電子表格文件,IronXL 都能無縫地處理轉換。
對於企業報表需求,IronXL 支援命名範圍以提高公式可讀性,凍結窗格以更好地進行資料導航,以及分組/取消分組功能以組織複雜的資料結構。 該庫還提供自動調整大小功能,以確保所有內容都能正確顯示。
如何設定所需的庫?
需要哪些 NuGet 套件?
首先,透過 NuGet 套件管理器安裝 IronXL 和 HTML Agility Pack。 IronXL 提供免費試用版,供使用者測試所有功能,並為企業部署提供詳細的授權文件:
Install-Package IronXL.Excel
Install-Package HtmlAgilityPackInstall-Package IronXL.Excel
Install-Package HtmlAgilityPack對於企業環境,您可以在 Web.config 中設定許可證金鑰,或使用許可 API以程式設計方式應用它。 該程式庫支援各種部署場景,包括ASP.NET Web 應用程式和Blazor 伺服器端應用程式。
我應該導入哪些命名空間?
這些 NuGet 套件可讓您以程式設計方式建立、載入和儲存Excel 文件。 然後將必要的 using 語句匯入到您的 C# 程式碼檔案中:
using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;using IronXL;
using HtmlAgilityPack;
using System;
using System.Linq;這些函式庫可以無縫協作,HTML Agility Pack 負責 HTML 解析,而 IronXL 負責Excel 檔案的建立和操作。 本範例示範了將 HTML 表格轉換為XLSX 格式的簡單方法。 對於VB.NET 開發人員來說,只需稍作語法調整即可實現類似的功能。
如何使用 HTML Agility Pack 解析 HTML 表格資料?
提取HTML表格內容的基本方法是什麼?
HTML Agility Pack 提供了一種使用 XPath 表達式瀏覽 HTML 文件的簡單方法。 以下程式碼展示如何使用IronXL 的資料匯入功能從 HTML 表格中提取資料並準備匯出:
// Sample HTML table with product data
string htmlContent = @"
<table>
<thead>
<tr>
<th>Product</th>
<th>Price</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
<tr>
<td>Laptop</td>
<td>$999</td>
<td>15</td>
</tr>
<tr>
<td>Mouse</td>
<td>$25</td>
<td>50</td>
</tr>
<tr>
<td>Keyboard</td>
<td>$75</td>
<td>30</td>
</tr>
</tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");// Sample HTML table with product data
string htmlContent = @"
<table>
<thead>
<tr>
<th>Product</th>
<th>Price</th>
<th>Stock</th>
</tr>
</thead>
<tbody>
<tr>
<td>Laptop</td>
<td>$999</td>
<td>15</td>
</tr>
<tr>
<td>Mouse</td>
<td>$25</td>
<td>50</td>
</tr>
<tr>
<td>Keyboard</td>
<td>$75</td>
<td>30</td>
</tr>
</tbody>
</table>";
// Load HTML document for parsing
var doc = new HtmlDocument();
doc.LoadHtml(htmlContent);
// Select the HTML table element using XPath
var table = doc.DocumentNode.SelectSingleNode("//table");這種解析方法適用於各種 HTML 來源,無論是來自網頁抓取、資料庫匯出或動態產生的內容。 擷取的資料可以使用 IronXL 的資料處理功能進行進一步處理,然後再匯出。
XPath 如何用於表格元素選擇?
這段程式碼將 HTML 內容載入到HtmlDocument物件中,並使用 XPath查詢和選取表格元素。 SelectSingleNode方法傳回 HTML 中找到的第一個表格,方便在存在多個表格時精確定位特定表格。此方法會處理表格的每一行,提取儲存格值進行轉換,類似於 IronXL 處理 Excel 資料時的範圍選擇方式。
如何使用 IronXL 將解析後的資料匯出到 Excel?
什麼程式碼可以將HTML表格資料轉換為Excel格式?
使用 IronXL,我們可以輕鬆地將解析後的 HTML 表格資料轉換為格式正確的專業 Excel 電子表格。 以下程式碼示範如何使用自訂字體大小和字體系列設定匯出資料:
// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
for (int col = 0; col < headers.Count; col++)
{
workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
// Apply header formatting
var headerCell = workSheet.GetCellAt(0, col);
headerCell.Style.Font.Bold = true;
headerCell.Style.BackgroundColor = "#4CAF50";
}
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
for (int row = 0; row < rows.Count; row++)
{
var cells = rows[row].SelectNodes("td");
if (cells != null)
{
for (int col = 0; col < cells.Count; col++)
{
string cellValue = cells[col].InnerText.Trim();
workSheet.SetCellValue(row + 1, col, cellValue);
}
}
}
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");// Create a new Excel workbook
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Exported Data");
// Extract and write headers
var headers = table.SelectNodes(".//thead/tr/th");
if (headers != null)
{
for (int col = 0; col < headers.Count; col++)
{
workSheet.SetCellValue(0, col, headers[col].InnerText.Trim());
// Apply header formatting
var headerCell = workSheet.GetCellAt(0, col);
headerCell.Style.Font.Bold = true;
headerCell.Style.BackgroundColor = "#4CAF50";
}
}
// Extract and write data rows
var rows = table.SelectNodes(".//tbody/tr");
if (rows != null)
{
for (int row = 0; row < rows.Count; row++)
{
var cells = rows[row].SelectNodes("td");
if (cells != null)
{
for (int col = 0; col < cells.Count; col++)
{
string cellValue = cells[col].InnerText.Trim();
workSheet.SetCellValue(row + 1, col, cellValue);
}
}
}
}
// Auto-fit columns for better readability
for (int col = 0; col < headers?.Count; col++)
{
workSheet.AutoSizeColumn(col);
}
// Save the Excel file
workBook.SaveAs("ExportedTable.xlsx");可以透過新增數位格式、儲存格註解或超連結等其他格式選項來增強此程式碼,從而建立更複雜的 Excel 輸出。 對於大型資料集,請考慮使用IronXL 的效能最佳化功能來處理檔案大小限制。
Excel API 架構如何運作?
此程式碼演示了 IronXL 的直覺的C# Excel 操作API。 首先,它會建立一個新的工作簿和工作表。 然後它遍歷已解析的 HTML 表格標題,將它們放置在第一行,同時套用粗體格式和綠色背景色。 HTML 表格中的資料行也以類似的方式處理,提取每個儲存格的文字內容並將其放入對應的 Excel 儲存格中。 AutoSizeColumn函數確保所有內容都可見,最後,將工作簿儲存為 XLSX 檔案。 您可以輕鬆下載生成的文件,或將其儲存在資料庫中以便日後檢索。
對於需要審計追蹤的企業場景,您可以新增工作簿元數據,例如作者資訊、建立日期和文件屬性。 該庫還支援列印設定配置,用於產生可直接列印的報告。
最終輸出結果是什麼樣子的?
這裡可以看到原始 HTML 表格與上述輸出的對比,顯示了 IronXL 如何在提供專業格式選項的同時保持資料完整性:
如何在 C# 中將 HTML 表格匯出到 Excel 檔案:圖 2 - 解析後的 Excel 資料與原始 HTML 表格的對比
如何處理常見的出口情境?
如何匯出多個HTML表格?
當處理多個表格時,只需使用SelectNodes ("//table") 取得所有表格並遍歷它們,為每個表格建立單獨的工作表。 本範例展示如何使用工作表管理技術處理包含大型資料集的複雜場景:
var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
// Create new worksheet for each table
WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
// Process table as shown above
}var tables = doc.DocumentNode.SelectNodes("//table");
foreach (var tbl in tables)
{
// Create new worksheet for each table
WorkSheet ws = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}");
// Process table as shown above
}對於更進階的場景,您可以合併多個 Excel 區域、實施資料驗證或新增條件格式規則來突出顯示重要的資料模式。
我應該實現怎樣的錯誤處理?
為了處理錯誤,請將解析邏輯放在 try-catch 區塊中,以便優雅地處理格式錯誤的 HTML。 IronXL 會自動處理資料類型偵測,並在適當的時候使用其內建的轉換功能將數字字串轉換為數字。 對於涉及動態內容的更複雜場景,開發人員通常會將這種方法與Selenium WebDriver等工具結合使用,以處理 JavaScript 渲染的表格。
在處理CSV 檔案或TSV 資料時,IronXL 提供了專門的方法來處理基於分隔符號的格式。 該庫也支援不同電子表格格式之間的轉換,方便匯出為不同系統所需的格式。
如何處理特殊資料需求?
在處理來自 URL 或資料庫查詢的內容以進行進一步分析時,您可能需要處理其他細節,例如隱藏欄位值或特殊格式要求。 預設行為對於標準表格效果很好,但您可以使用IronXL 的樣式 API根據需要為每一列或任何特定的表格行自訂字體大小、字體系列和其他樣式屬性。
對於需要排序或修剪的數據,IronXL 提供了內建方法,可以在最終導出之前清理和整理資料。 您也可以根據解析要求動態新增行和列,或在處理過程中根據需要插入新的行和列。
企業應用程式經常需要匯出為不同的格式,例如轉換為 HTML以便在 Web 上顯示,或透過DataTable 轉換與 SQL 資料庫整合。 IronXL 透過專門的方法和全面的文件支援所有這些場景。
該方案的主要優勢是什麼?
IronXL 和 HTML Agility Pack 的組合為使用 C# 將 HTML 表格匯出到 Excel 提供了一個強大且靈活的解決方案。 本文示範了將 HTML 內容轉換為 XLSX 格式、匯出資料表資訊以及建立專業電子表格檔案的簡單步驟。 這種方法比僵化的內建方法提供了更大的控制權,使開發人員能夠處理複雜的 HTML 結構,同時利用 IronXL 的全面 Excel 功能。
對於企業部署,IronXL 提供詳細的安全文件、靈活的許可選項以及對許可證擴展和升級的支援。 該庫的變更日誌顯示其效能和功能不斷改進,確保其能夠長期滿足企業專案的需求。
無論您是建立網路爬蟲、從資料庫遷移遺留資料、使用圖表自動產生報告,還是對大型資料集執行資料分析,此解決方案均可擴展以滿足企業需求。 提供的程式碼範例展示如何處理各種輸入來源,從靜態 HTML 到透過 URL 取得的動態內容。 您可以輕鬆地將結果匯出到.NET MAUI 應用程式或傳統桌面解決方案中進行下載或進一步處理。
對於需要進階 Excel 功能的組織,IronXL 支援聚合函數、 C# 中的 Excel 公式,甚至可以直接從 Excel 更新資料庫記錄。 該庫保護 Excel 文件的能力確保了整個匯出過程中的資料安全。
準備好將您的 HTML 資料轉換為專業的 Excel 表格檔案了嗎? 立即開始 IronXL 的免費試用,體驗無需依賴 Office 即可靈活進行程式化 Excel 操作的便利性。 對於生產環境部署,請探索我們的授權選項,起價為$799 。 請造訪我們的綜合教學課程,以了解更多進階Excel自動化技巧。
常見問題解答
使用 IronXL 將 HTML 表格轉換為 Excel 的主要好處是什麼?
IronXL 可讓您輕鬆地將 HTML 表格資料轉換為 Excel 電子表格,其靈活的方法無需 Microsoft Office,從而實現跨平台相容性。
IronXL在轉換為Excel時能否處理複雜的HTML表格結構?
是的,IronXL 旨在管理複雜的 HTML 表格結構,確保資料能夠準確地匯出到 Excel,同時保持原始佈局和格式。
是否可以使用 C# 中的 IronXL 自動將 HTML 表格轉換為 Excel?
當然,IronXL 支援自動化,允許開發人員在 C# 應用程式中以程式設計方式將 HTML 表格轉換為 Excel 表格,從而簡化資料處理工作流程。
IronXL 將 HTML 表格轉換為 Excel 是否支援不同的檔案格式?
IronXL 支援多種 Excel 檔案格式,包括 XLSX、XLS 和 CSV,可靈活選擇最適合您應用程式需求的輸出格式。
我是否需要安裝 Microsoft Office 才能使用 IronXL 進行 HTML 到 Excel 的轉換?
不,IronXL 不需要安裝 Microsoft Office,它提供了一個輕量級的解決方案,可以將 HTML 表格轉換為 Excel,並支援跨平台使用。
使用 IronXL 將 HTML 表格轉換為 Excel 的典型用例有哪些?
常見用例包括資料遷移、報告產生和網頁資料的進一步分析,其中將 HTML 表格內容匯出到 Excel 對於業務應用程式是必要的。
IronXL 與其他 HTML 轉 Excel 庫相比如何?
雖然有些程式庫可能提供將 HTML 轉換為 Excel 的內建方法,但 IronXL 的獨特之處在於它提供了豐富的功能,而沒有其他解決方案中常見的限制,例如受限的檔案格式支援。






