C#将html table 导出成excel实例

下面是关于“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技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • ActiveMQ在C#中的应用示例分析

    ActiveMQ是一款领先的Java消息中间件,可以在不同的编程语言和平台中实现异步通信和消息传递。在C#中,我们可以使用NMS API(Apache.NMS)来与ActiveMQ进行交互。 下面是使用ActiveMQ在C#中实现消息队列的两个示例。 示例1:实现消费者读取消息 首先,我们需要安装和配置ActiveMQ,并且启动ActiveMQ服务。假设Ac…

    C# 2023年5月15日
    00
  • C# Socket网络编程实例

    下面给大家详细讲解一下“C# Socket网络编程实例”的完整攻略。 引言 在进行网络编程时,我们经常需要使用到Socket,它是一种协议栈的API,它提供了网络编程在应用层的解决方案。在C#语言中,有着完备的Socket基础类库,我们可以简单的使用C# Socket类来进行网络编程。 Socket 常用方法 1. 创建 Socket Socket sock…

    C# 2023年6月1日
    00
  • C# form-data上传图片流到远程服务器的详细代码

    下面是详细的C# form-data上传图片流到远程服务器的攻略: 前提准备 在进行上传前需要确保满足以下条件: 需要有已经存在的图片文件或者是通过二进制转换后的图片流数据; 需要有正确的接口地址和接口方法,确保能够将图片数据发送到正确的服务器地址。 代码实现 1. 使用HttpWebRequest实现图片上传 使用HttpWebRequest进行图片上传的…

    C# 2023年6月7日
    00
  • C#生成指定范围内的不重复随机数

    下面是” C#生成指定范围内的不重复随机数 “的攻略。 1. 使用 C# 的 Random 类生成随机数 System.Random 是 C# 中封装了随机数生成器的类,可以用来生成伪随机数。Random 的默认构造函数可以产生种子数,可以在每次生成随机数时用来确定这个随机数系列的起始位置,从而产生不同的随机数序列。 2. 生成指定范围内的随机数 生成指定范…

    C# 2023年6月7日
    00
  • js无刷新操作table的行和列

    操作table的行 要实现js无刷新操作table的行,我们可以通过以下方式: 找到对应的<tr>元素,使用DOM API进行操作 或者通过ajax向后端发送请求,返回表格的新数据,再用js更新表格的内容 以下是一个示例代码,实现通过点击按钮删除特定的一行: <table> <tr> <td>行1-列1<…

    C# 2023年6月1日
    00
  • c#版在pc端发起微信扫码支付的实例

    下面我将为您详细讲解c#版在pc端发起微信扫码支付的实例。 准备工作 首先,您需要一个微信商户号和应用密钥,以便进行微信支付。如果您还没有,请前往微信支付官网注册并申请。 其次,使用c#语言的开发环境(如:Visual Studio)来编写代码。 最后,您需要下载微信支付的SDK包,该包提供了相应的API和文档,便于开发。 编写代码 引用微信支付SDK 在代…

    C# 2023年5月31日
    00
  • C#实现的滚动网页截图功能示例

    C#实现滚动网页截图功能攻略 1. 概述 滚动截图是一种常见的网页截图技术,它可以将整个页面的截图多次拼接在一起,形成完整的网页截图。本文将介绍通过C#编写实现滚动网页截图功能。 2. 实现思路 使用WebBrowser控件作为载体,在WebBrowser控件中载入网页,通过Javascript将网页的滚动条滚动到底部,将页面的高度计算出来。 将WebBro…

    C# 2023年6月6日
    00
  • 基于Jenkins搭建.NET Core持续集成环境过程图解

    基于Jenkins搭建.NET Core持续集成环境过程图解 Jenkins是一个开源的自动化构建工具,可以用于构建、测试和部署软件。在本攻略中,我们将介绍如何使用Jenkins搭建.NET Core持续集成环境,并提供两个示例说明。 步骤一:安装Jenkins 安装Java Jenkins是基于Java开发的,因此需要先安装Java。可以从官方网站下载Ja…

    C# 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部