下面是关于“C#将html table 导出成excel实例”的完整攻略。
1. 环境准备
在使用C#将HTML表格导出为Excel之前,需要确保安装并引用以下两个库:
- EPPlus :一个用于创建和读取Excel的开源库,可在 Nuget 上查找和安装。
- HtmlAgilityPack: 一个用于处理HTML文档的开源库,可在 Nuget 上查找和安装。
2. 获取HTML数据源
将 HTML table 数据源读入内存并将其存储为 HtmlDocument
对象。可以使用 HtmlAgilityPack
库来实现它。示例代码如下:
using HtmlAgilityPack;
string htmlContent = @"<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>";
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
3. 创建Excel文档并将数据写入它
要将表格数据写入Excel文档,可以使用 EPPlus
库。
首先,我们需要使用 ExcelPackage
类创建一个 Excel
文件,然后用 ExcelWorksheet
类从中获取一个工作表对象。接下来,我们使用 HtmlDocument
对象中的数据来填充表格。示例代码如下:
using OfficeOpenXml;
var package = new ExcelPackage();
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
var tableNode = htmlDoc.DocumentNode.SelectSingleNode("//table");
int row = 1;
int column = 1;
foreach (var rowNode in tableNode.SelectNodes("tr"))
{
foreach (var cellNode in rowNode.SelectNodes("th|td"))
{
worksheet.Cells[row, column].Value = cellNode.InnerText;
column++;
}
column = 1; // 列数重置
row++;
}
//设置单元格宽度
worksheet.Cells.AutoFitColumns();
4. 保存Excel文件
完成Excel填写后,使用 SaveAs
方法将其保存到磁盘上。示例代码如下:
string fileName = @"c:\Temp\test.xlsx";
package.SaveAs(new FileInfo(fileName));
5. 完整示例代码
using System.IO;
using HtmlAgilityPack;
using OfficeOpenXml;
namespace HtmlTableToExcel
{
class Program
{
static void Main(string[] args)
{
// HTML 数据源
string htmlContent = @"<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>";
// 将 HTML 数据源读入内存中的 HtmlDocument
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContent);
// 创建 Excel 文档并填充数据
var package = new ExcelPackage();
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
var tableNode = htmlDoc.DocumentNode.SelectSingleNode("//table");
int row = 1;
int column = 1;
foreach (var rowNode in tableNode.SelectNodes("tr"))
{
foreach (var cellNode in rowNode.SelectNodes("th|td"))
{
worksheet.Cells[row, column].Value = cellNode.InnerText;
column++;
}
column = 1; // 列数重置
row++;
}
// 设置单元格宽度
worksheet.Cells.AutoFitColumns();
// 保存 Excel 文件
string fileName = @"c:\Temp\test.xlsx";
package.SaveAs(new FileInfo(fileName));
}
}
}
以上就是使用 C# 将 HTML 表格导出为 Excel 的全部过程和示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#将html table 导出成excel实例 - Python技术站