使用 IRONXL 如何在 C# 中將 HTML 表格匯出為 Excel 文件 Jordi Bardia 發表日期:10月 27, 2025 Download IronXL NuGet 下載 DLL 下載 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 提取HTML表格数据并将其转换为excel电子表格是商业应用程序中的常见需求,无论是用于数据迁移、报表生成,还是需要进一步分析的网页。 本文提供了将数据表内容从HTML导出到Excel格式的简单步骤。 虽然一些库提供内置方法来转换HTML表格,但这些方法通常在文件格式或支持功能上有所限制。 当您需要将HTML表格导出到excel时,了解excel工作表结构与HTML表格之间的关系至关重要。 本指南演示了如何有效地将数据从HTML表格转移到excel格式,创建保持数据完整性的专业excel工作表输出。 IronXL提供了一种更灵活的方法,将HTML表格内容转换为Excel工作表,将其强大的Excel操作能力与HTML解析相结合,实现C#中将HTML表格导出到Excel。 无论您是需要从URL下载数据还是处理数据库内容,此解决方案可以处理各种输入场景。 为什么选择IronXL来导出HTML表格数据? IronXL excels at creating and manipulating Excel文件时不需要安装Microsoft Office,使其成为服务器环境和跨平台应用程序的理想选择。 与HTML Agility Pack配对时,一个强大的HTML文件和内容解析器,IronXL成为将任何HTML表格结构转换为excel表格数据的多功能解决方案。 此方法无缝支持.NET应用程序,并能高效处理大数据集。 与Syncfusion Excel库的XlsIO这样的库不同,后者的ImportHtmlTable功能仅限于特定的HTML格式和表格结构,IronXL的方法为开发者提供了对解析和转换过程的完整控制。 这种灵活性意味着开发者可以处理复杂场景,如嵌套表、自定义数据格式和选择性列提取,这是相对死板的内置方法无法适应的。 默认设置适用于大多数用例,但您可以自定义每个细节。 Additionally, IronXL provides comprehensive Excel features including formula support, cell styling, multiple worksheet management, and various export formats (XLSX, XLS, JSON, and CSV file). 您甚至可以创建图表、导出为pdf并管理隐藏字段数据,使其成为满足超出简单HTML表格转换之外的Excel自动化需求的完整解决方案。 无论是处理dataable对象还是电子表格文件,IronXL都能无缝处理转换。 如何设置所需的库? 首先,通过NuGet包管理器安装IronXL和HTML Agility Pack。 IronXL提供免费试用来测试所有功能: Install-Package IronXL.Excel Install-Package HtmlAgilityPack Install-Package IronXL.Excel Install-Package HtmlAgilityPack SHELL 这些NuGet包允许您以编程方式创建、加载和保存Excel文档。 然后将必要的using语句导入到您的C#代码文件中: using IronXL; using HtmlAgilityPack; using System; using System.Linq; using IronXL; using HtmlAgilityPack; using System; using System.Linq; IRON VB CONVERTER ERROR developers@ironsoftware.com $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"); IRON VB CONVERTER ERROR developers@ironsoftware.com $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"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代码演示了IronXL在C# Excel操作中的直观API。 首先,它创建一个新的工作簿和工作表。 然后,遍历解析的HTML表格头,将其放置在第一行,同时应用粗体格式和绿色背景色。 HTML表格中的数据行以类似方式处理,将每个单元格的文本内容提取并放置在相应的Excel单元格中。 AutoSizeColumn函数确保所有内容可见,最后,工作簿被保存为XLSX文件。您可以轻松下载生成的文件或将其存储在数据库中以供以后检索。 在这里,您可以看到原始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 } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 为了处理错误,将解析逻辑包装在try-catch块中,以优雅地处理格式不良的HTML。 IronXL自动处理数据类型检测,在适当时将数字字符串转换为数字。 对于涉及动态内容的更复杂场景,开发者通常将这种方法与Selenium WebDriver等工具结合使用,以支持JavaScript呈现的表格。 当从URL或数据库查询生成的数据进行进一步分析时,您可能需要处理附加细节,如隐藏字段值或特殊格式要求。 默认行为适用于标准表格,但您可以根据需要自定义字体大小、字体系列和其他样式属性以适应每个第一列或任何特定表格行。 結論 IronXL和HTML Agility Pack的结合提供了一个强大、灵活的解决方案,用于在C#中将HTML表格导出到Excel。 本文展示了将HTML内容转换为xlsx格式、导出数据表信息及创建专业电子表格文件的简单步骤。 这种方法提供了比相对死板的内置方法更多的控制,使开发者能够处理复杂的HTML结构,同时利用IronXL全面的Excel功能。 无论您是在构建网页爬虫、从数据库迁移旧数据、使用图表自动生成报告,还是对大数据集进行数据分析,这一解决方案都能扩展以满足企业需求。 提供的代码示例展示了如何处理各种输入源,从静态HTML到通过URL检索的动态内容。 您可以轻松导出结果进行下载或在.NET应用程序中进一步处理。 您准备好将您的HTML数据转换为专业的excel工作表文件了吗? 现在开始免费试用IronXL,体验无Office依赖的编程Excel操作的灵活性。 对于生产部署,探索我们的许可选项,起价$799。 常見問題解答 使用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以無限制的廣泛功能脫穎而出,不會如其他方案那樣受到其他限制。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 10月 27, 2025 如何在 C# 中創建 Excel 樞紐分析表 學習使用 C# Interop 和 IronXL 創建 Excel 中的樞紐分析表,這是一個清晰的分步指南。 閱讀更多 發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多 發表日期 10月 27, 2025 如何使用 IronXL 的 .NET Core CSV 讀取器 學習使用 IronXL 作為 .NET Core CSV 讀取器的有效方法,提供實用範例。 閱讀更多 為什麼 ExcelDataReader 無法編寫 Excel 文件以及 IronXL 如何解決這個問題如何在 C# 中將 DataGridView ...
發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多