使用 IRONXL C# 使用 IronXL.Excel 將 HTML 表格匯出至 Excel 檔案 Curtis Chau 更新:2026年1月5日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在商業應用中,無論是資料遷移、報表產生或需要進一步分析的網頁,提取 HTML 表格資料並將其轉換為 Excel 表格都是一個常見的需求。 本文提供了將 HTML 資料表內容匯出為 Excel 格式的簡單步驟。 雖然有些庫提供了轉換 HTML 表格的內建方法,但這些方法通常在文件格式或支援的功能方面有限制。 當您需要將 HTML 表格匯出到 Excel 時,了解 Excel 工作表結構和 HTML 表格之間的關係至關重要。 本指南示範如何有效率地將資料從 HTML 表格轉換為 Excel 格式,以建立保持資料完整性的專業 Excel 工作表輸出。 IronXL提供了一種更靈活的方式將 HTML 表格內容轉換為 Excel 工作表,它結合了強大的 Excel 操作功能和 HTML 解析功能,以 C# 格式將 HTML 表格匯出到 Excel。 無論您需要從 URL 下載資料還是處理資料庫中的內容,此解決方案都能處理各種輸入場景。 為什麼選擇 IronXL 匯出 HTML 表格資料? IronXL擅長於建立和處理Excel 檔案,而不需要安裝 Microsoft Office,因此非常適合伺服器環境和跨平台應用程式。 IronXL 與強大的 HTML 檔案和內容解析器HTML Agility Pack搭配使用時,就成為將任何 HTML 表格結構轉換為 Excel 表格資料的多功能解決方案。 這種方法可以與 .NET 應用程式無縫協作,並能有效地處理大型資料集。 與 Syncfusion Excel 函式庫的 XlsIO 等函式庫不同,後者提供的 ImportHtmlTable 函數僅限於特定的 HTML 格式和表格結構,IronXL 的方法使開發人員能夠完全控制解析和轉換過程。 這種靈活性意味著開發人員可以處理複雜的場景,例如巢狀表、自訂資料格式和選擇性列提取,而這些是僵化的內建方法無法實現的。 預設設定適用於大多數使用場景,但您可以自訂每個細節。 此外,IronXL 還提供全面的 Excel 功能,包括公式支援、儲存格樣式、多工作表管理以及各種匯出格式(XLSX、XLS、JSON 和 CSV 檔案)。 您甚至可以建立圖表、匯出為 PDF 以及管理隱藏欄位數據,使其成為滿足 Excel 自動化需求的完整解決方案,而不僅僅是簡單的 HTML 表格轉換。 無論是處理資料表物件還是電子表格文件,IronXL 都能無縫地處理轉換。 如何設定所需的庫? 首先,透過 NuGet 套件管理器安裝 IronXL 和 HTML Agility Pack。 IronXL 提供免費試用版,供用戶測試所有功能: Install-Package IronXL.Excel Install-Package HtmlAgilityPack Install-Package IronXL.Excel Install-Package HtmlAgilityPack $vbLabelText $csharpLabel 這些 NuGet 套件可讓您以程式設計方式建立、載入和儲存 Excel 文件。 然後將必要的 using 語句匯入到您的 C# 程式碼檔案中: using IronXL; using HtmlAgilityPack; using System; using System.Linq; using IronXL; using HtmlAgilityPack; using System; using System.Linq; Imports IronXL Imports HtmlAgilityPack Imports System Imports System.Linq $vbLabelText $csharpLabel 這些函式庫可以無縫協作,HTML Agility Pack 負責 HTML 解析,而 IronXL 負責 Excel 檔案的建立和操作。 本範例示範了將 HTML 表格轉換為 XLSX 格式的簡單方法。 如何使用 HTML Agility Pack 解析 HTML 表格資料? HTML Agility Pack 提供了一種使用 XPath 表達式瀏覽 HTML 文件的簡單方法。 以下程式碼展示如何從 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"); ' Sample HTML table with product data Dim htmlContent As String = " <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 Dim doc As New HtmlDocument() doc.LoadHtml(htmlContent) ' Select the HTML table element using XPath Dim table = doc.DocumentNode.SelectSingleNode("//table") $vbLabelText $csharpLabel 這段程式碼將 HTML 內容載入到HtmlDocument物件中,並使用 XPath 查詢和選取表格元素。 SelectSingleNode方法傳回 HTML 中找到的第一個表格,方便在存在多個表格時精確定位特定表格。此方法會處理表格的每一行,提取儲存格值進行轉換。 如何使用 IronXL 將解析後的資料匯出到 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"); Imports System ' Create a new Excel workbook Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX) Dim workSheet As WorkSheet = workBook.CreateWorkSheet("Exported Data") ' Extract and write headers Dim headers = table.SelectNodes(".//thead/tr/th") If headers IsNot Nothing Then For col As Integer = 0 To headers.Count - 1 workSheet.SetCellValue(0, col, headers(col).InnerText.Trim()) ' Apply header formatting Dim headerCell = workSheet.GetCellAt(0, col) headerCell.Style.Font.Bold = True headerCell.Style.BackgroundColor = "#4CAF50" Next End If ' Extract and write data rows Dim rows = table.SelectNodes(".//tbody/tr") If rows IsNot Nothing Then For row As Integer = 0 To rows.Count - 1 Dim cells = rows(row).SelectNodes("td") If cells IsNot Nothing Then For col As Integer = 0 To cells.Count - 1 Dim cellValue As String = cells(col).InnerText.Trim() workSheet.SetCellValue(row + 1, col, cellValue) Next End If Next End If ' Auto-fit columns for better readability For col As Integer = 0 To If(headers?.Count, 0) - 1 workSheet.AutoSizeColumn(col) Next ' Save the Excel file workBook.SaveAs("ExportedTable.xlsx") $vbLabelText $csharpLabel 這段程式碼示範了 IronXL 直覺的 C# Excel 操作 API。 首先,它會建立一個新的工作簿和工作表。 然後,它遍歷已解析的 HTML 表格標題,將它們放置在第一行,同時套用粗體格式和綠色背景色。 HTML 表格中的資料行也以類似的方式處理,提取每個儲存格的文字內容並將其放入對應的 Excel 儲存格中。 AutoSizeColumn函數確保所有內容都可見,最後,工作簿將儲存為 XLSX 檔案。您可以輕鬆下載生成的文件,或將其儲存到資料庫中以便日後檢索。 使用 IronXL 將 C# HTML 表格匯出到 Excel 檔案:圖 1 - IronXL 解析後的表格資料輸出 這裡可以看到原始 HTML 表格與上述輸出結果的比較: 使用 IronXL 將 C# HTML 表格匯出到 Excel 檔案:圖 2 - 解析後的 Excel 資料與原始 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 } Dim tables = doc.DocumentNode.SelectNodes("//table") For Each tbl In tables ' Create new worksheet for each table Dim ws As WorkSheet = workBook.CreateWorkSheet($"Table_{tables.IndexOf(tbl) + 1}") ' Process table as shown above Next $vbLabelText $csharpLabel 為了處理錯誤,請將解析邏輯放在 try-catch 區塊中,以便優雅地處理格式錯誤的 HTML。 IronXL 會自動處理資料類型偵測,並在適當的時候將數字字串轉換為數字。 對於涉及動態內容的更複雜場景,開發人員通常會將這種方法與Selenium WebDriver等工具結合使用,以處理 JavaScript 渲染的表格。 在處理來自 URL 或資料庫查詢的內容以進行進一步分析時,您可能需要處理其他細節,例如隱藏欄位值或特殊格式要求。 預設行為適用於標準表格,但您可以根據需要為每一列或任何特定表格行自訂字體大小、字體系列和其他樣式屬性。 結論 IronXL 和 HTML Agility Pack 的組合為使用 C# 將 HTML 表格匯出到 Excel 提供了一個強大且靈活的解決方案。 本文示範了將 HTML 內容轉換為 XLSX 格式、匯出資料表資訊以及建立專業電子表格檔案的簡單步驟。 這種方法比僵化的內建方法提供了更大的控制權,使開發人員能夠在利用 IronXL 的全面 Excel 功能的同時處理複雜的 HTML 結構。 無論您是建立網路爬蟲、從資料庫遷移遺留資料、使用圖表自動產生報告,還是對大型資料集執行資料分析,此解決方案均可擴展以滿足企業需求。 提供的程式碼範例展示如何處理各種輸入來源,從靜態 HTML 到透過 URL 取得的動態內容。 您可以輕鬆地將結果匯出以供下載或在 .NET 應用程式中進行進一步處理。 準備好將您的 HTML 資料轉換為專業的 Excel 表格檔案了嗎? 立即開始 IronXL 的免費試用,體驗無需依賴 Office 即可靈活進行程式化 Excel 操作的便利性。 對於生產部署,請探索我們的 授權選項,從 $799 開始。 常見問題解答 在商業應用程式中,將 HTML 表格轉換為 Excel 的主要目的是什麼? 主要目的是透過將 HTML 表格資料轉換成 Excel 易於管理和分析的格式,以利於資料轉移、報表產生或進一步分析網頁資料。 指南建議使用哪個函式庫以 C# 將 HTML 表格轉換為 Excel? 本指南建議使用 IronXL 將 HTML 表格轉換為 C# 語言的 Excel,因為它提供了一種不需要 Microsoft Office 的彈性方法。 為什麼有些函式庫可能不適合將 HTML 表格轉換為 Excel? 有些函式庫可能不適合,因為它們在檔案格式上有限制或缺乏支援功能,這可能會限制它們處理各種資料轉換需求的效能。 使用 IronXL.Excel 匯出 HTML 表格到 Excel 是否需要 Microsoft Office? 不,使用 IronXL 不需要 Microsoft Office。它可跨平台運作,並提供將 HTML 表格匯出至 Excel 的彈性解決方案。 IronXL 可以處理 HTML 表格到 Excel 的跨平台轉換嗎? 是的,IronXL 可以處理 HTML 表格到 Excel 的跨平台轉換,使其成為在不同環境下工作的開發人員的通用工具。 將 HTML 表格轉換為 Excel 的常見用例有哪些? 常見的使用案例包括資料遷移、產生報告,以及以更有條理且更容易存取的格式分析網頁資料。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 相關文章 發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多 發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多 發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多 ExcelDataReader 寫 Excel 檔案:為什麼它不能以及 IronXL 如何解決這個問題C# 使用 IronXL.Excel 匯出物件...
發表日期 2026年2月15日 如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C# 學習如何使用 OleDb vs IronXL.Excel 將 DataTable 匯出至 Excel C#。 閱讀更多
發表日期 2026年2月15日 如何在未安裝 Office 的情況下使用 IronXL 開啟 VB.NET 中的現有 Excel 檔案 了解如何使用 IronXL for .NET 在未安裝 Office 的情況下在 VB.NET 中開啟現有的 Excel 檔案。 閱讀更多
發表日期 2026年2月15日 C# CSV to XLSX:完整開發人員指南 使用 IronXL 在 C# 中將 CSV 轉換為 XLSX。載入 CSV 檔案、保留資料類型、新增圖表,以及匯出為 Excel 格式,而無需 Microsoft Office 的相依性。 閱讀更多