当前位置: 首页 > news >正文

【C#生态园】从正则表达式到Excel操作:全面解析这六款C#库的核心功能和应用

C#开发利器:掌握这六款常用库,轻松应对各种开发任务

前言

在C#开发中,使用合适的库能够大大提高工作效率。本文将介绍一些常用的C#库,包括正则表达式、文本处理、HTML文档解析、电子邮件消息处理、CSV文件读写以及操作Excel文件的库。通过学习这些库的核心功能、安装配置以及API概览,可以帮助开发人员更好地利用这些库来完成各种任务。

欢迎订阅专栏:C#生态园

文章目录

  • C#开发利器:掌握这六款常用库,轻松应对各种开发任务
    • 前言
    • 1. RegularExpressions:一个用于C#的正则表达式库
      • 1.1 简介
        • 1.1.1 核心功能
        • 1.1.2 使用场景
      • 1.2 安装与配置
        • 1.2.1 安装指南
        • 1.2.2 基本配置
      • 1.3 API 概览
        • 1.3.1 正则表达式模式定义
        • 1.3.2 匹配操作
    • 2. Humanizer:一个用于C#的文本处理库
      • 2.1 简介
        • 2.1.1 核心功能
        • 2.1.2 使用场景
      • 2.2 安装与配置
        • 2.2.1 安装指南
        • 2.2.2 基本设置
      • 2.3 API 概览
        • 2.3.1 文本格式化
        • 2.3.2 文本转换
    • 3. HtmlAgilityPack:用于HTML文档解析和操作的C#库
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装方法
        • 3.2.2 基本设置
      • 3.3 API 概览
        • 3.3.1 HTML文档加载
        • 3.3.2 节点选择与操作
    • 4. MimeKit:一个用于处理电子邮件消息的C#库
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装指导
        • 4.2.2 基本配置
      • 4.3 API 概览
        • 4.3.1 邮件消息创建
        • 4.3.2 邮件解析
    • 5. CsvHelper:用于CSV文件读写的C#库
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指南
        • 5.2.2 基本设置
      • 5.3 API 概览
        • 5.3.1 CSV读取
        • 5.3.2 CSV写入
    • 6. NPOI:一个用于操作Excel文件的C#库
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指南
        • 6.2.2 基本设置
      • 6.3 API 概览
        • 6.3.1 Excel文件读取
        • 6.3.2 Excel文件写入
    • 总结

1. RegularExpressions:一个用于C#的正则表达式库

1.1 简介

RegularExpressions 是 C# 中用于处理正则表达式的类库,提供了强大的功能来处理文本匹配和替换操作。

1.1.1 核心功能

RegularExpressions 库的核心功能包括:

  • 正则表达式模式定义
  • 文本匹配操作
  • 文本替换操作
1.1.2 使用场景

RegularExpressions 可以应用于以下场景:

  • 文本搜索
  • 数据验证
  • 字符串替换
  • 模式匹配

1.2 安装与配置

1.2.1 安装指南

RegularExpressions 是 .NET Framework 内置的库,无需额外安装。

1.2.2 基本配置

在使用 RegularExpressions 时,只需引入 System.Text.RegularExpressions 命名空间即可使用其中的类和方法。

1.3 API 概览

1.3.1 正则表达式模式定义
// 定义一个匹配邮箱地址的正则表达式
string pattern = @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$";

更多关于正则表达式模式定义的信息,请参阅 MSDN - 正则表达式语言 - 快速参考

1.3.2 匹配操作
// 使用正则表达式进行匹配
Match match = Regex.Match(input, pattern);// 输出匹配结果
if (match.Success)
{Console.WriteLine("找到匹配:" + match.Value);
}
else
{Console.WriteLine("未找到匹配");
}

更多关于正则表达式匹配操作的信息,请参阅 MSDN - Match 类

2. Humanizer:一个用于C#的文本处理库

Humanizer 是一个用于 C# 的开源文本处理库,它能够帮助开发者在应用程序中对字符串进行格式化、转换和处理,使得文本操作更加人性化。

2.1 简介

2.1.1 核心功能

Humanizer 提供了丰富的 API,包括但不限于:

  • 对字符串进行人性化格式化,如将 “PascalCaseString” 转换为 “Pascal case string”;
  • 处理日期时间格式化,比如将 DateTime 对象转换为相对时间(例如 “2 minutes ago”);
  • 将数字转换为友好的字符串表示,比如将数字 1000 转换为 “1K”。
2.1.2 使用场景

Humanizer 在开发中常被用于处理用户界面显示、日志记录、数据报告生成等场景。通过 Humanizer,开发者可以简化对字符串和其他数据类型的处理,使其更符合人类直观认知。

2.2 安装与配置

2.2.1 安装指南

安装 Humanizer 可以使用 NuGet 包管理器,在 Visual Studio 中执行以下命令:

Install-Package Humanizer
2.2.2 基本设置

安装完成后,只需在需要使用 Humanizer 的文件中引入命名空间即可开始使用:

using Humanizer;

2.3 API 概览

2.3.1 文本格式化
string pascalCaseString = "PascalCaseString";
string formattedString = pascalCaseString.Humanize(); // 输出:"Pascal case string"

更多文本格式化的使用方法可以参考 Humanizer 文档。

2.3.2 文本转换
DateTime dateTime = new DateTime(2022, 1, 1);
string humanizedTime = dateTime.Humanize(); // 输出:"in a year"

以上是将 DateTime 对象转换为相对时间的示例,更多文本转换功能的使用方法请查阅 Humanizer 文档。

3. HtmlAgilityPack:用于HTML文档解析和操作的C#库

HtmlAgilityPack是一个用于解析和操作HTML文档的C#库,它提供了丰富的API来加载、查询和修改HTML文档,使得在C#中处理HTML文档变得更加便捷和灵活。

3.1 简介

3.1.1 核心功能

HtmlAgilityPack主要提供了HTML文档的加载、节点选择与操作、以及HTML文档的遍历和修改等功能。通过这些功能,开发者可以轻松地从HTML文档中提取信息,或者对HTML文档进行修改和处理。

3.1.2 使用场景

HtmlAgilityPack适用于需要从网页中抽取数据或者对HTML文档进行操作的场景。比如,在网络爬虫、数据挖掘、网页内容提取等应用中都能发挥作用。

3.2 安装与配置

3.2.1 安装方法

可以通过NuGet包管理器来安装HtmlAgilityPack。在Visual Studio中打开NuGet包管理器控制台,执行以下命令来安装HtmlAgilityPack:

Install-Package HtmlAgilityPack
3.2.2 基本设置

安装完成后,在C#项目中引入HtmlAgilityPack命名空间:

using HtmlAgilityPack;

3.3 API 概览

3.3.1 HTML文档加载

通过HtmlDocument类的Load方法可以加载HTML文档,示例代码如下:

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("http://example.com");

更多关于HtmlDocument的加载方法和参数可以参考HtmlAgilityPack官方文档。

3.3.2 节点选择与操作

HtmlAgilityPack提供了丰富的方法来选择和操作HTML文档中的节点,比如通过XPath表达式来选择特定的节点,或者添加、删除、修改节点等操作。以下是一个简单的示例,通过XPath表达式选择所有的超链接节点:

HtmlNodeCollection links = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (HtmlNode link in links)
{Console.WriteLine(link.Attributes["href"].Value);
}

更多关于节点选择和操作的方法可以参考HtmlAgilityPack官方文档。

4. MimeKit:一个用于处理电子邮件消息的C#库

MimeKit 是一个用于处理电子邮件消息的 C# 库,它提供了创建、解析和操作电子邮件消息的功能。本文将介绍 MimeKit 的核心功能、使用场景、安装与配置方法以及 API 概览。

4.1 简介

4.1.1 核心功能

MimeKit 提供了创建和解析符合 MIME 标准的电子邮件消息的功能,包括文本、HTML 内容和附件等。它支持多种编码方式,并能够处理邮件头部信息、附件和嵌入资源等。

4.1.2 使用场景

MimeKit 可用于构建自定义的电子邮件客户端、自动化发送邮件、从邮件中提取数据等场景。

4.2 安装与配置

4.2.1 安装指导

你可以通过 NuGet 来安装 MimeKit:

dotnet add package MimeKit

更多关于 MimeKit 的安装和更新信息,请访问 MimeKit 的 NuGet 页面。

4.2.2 基本配置

安装完成后,你可以在项目中引用 MimeKit:

using MimeKit;

4.3 API 概览

4.3.1 邮件消息创建

你可以使用 MimeKit 来创建电子邮件消息,例如:

var message = new MimeMessage();
message.From.Add(new MailboxAddress("发件人", "from@example.com"));
message.To.Add(new MailboxAddress("收件人", "to@example.com"));
message.Subject = "这是一封测试邮件";var body = new TextPart("plain")
{Text = "这是一封测试邮件的内容."
};message.Body = body;

更多关于邮件消息创建的示例,可以参考 MimeKit 创建邮件消息。

4.3.2 邮件解析

MimeKit 也可以帮助你解析接收到的邮件消息,例如:

var message = MimeMessage.Load(@"path\to\email.eml");Console.WriteLine("From: {0}", message.From);
Console.WriteLine("To: {0}", message.To);
Console.WriteLine("Subject: {0}", message.Subject);
Console.WriteLine("Body: {0}", message.TextBody);

更多关于邮件解析的示例,可以参考 MimeKit 解析邮件消息。

5. CsvHelper:用于CSV文件读写的C#库

CsvHelper 是一个流行的 C# 库,用于简化 CSV 文件的读取和写入操作。它提供了丰富的功能和灵活的配置选项,使得处理 CSV 文件变得非常方便。

5.1 简介

5.1.1 核心功能

CsvHelper 提供了高效、可定制的 CSV 文件读取和写入功能。它支持自定义分隔符、引号规则、类型转换等功能,并且能够处理大型 CSV 文件。

5.1.2 使用场景

CsvHelper 可以广泛应用于需要处理 CSV 文件的 C# 项目中,例如数据导入导出、报表生成等场景。

5.2 安装与配置

5.2.1 安装指南

要安装 CsvHelper,可以使用 NuGet 包管理器或者 .NET CLI:

dotnet add package CsvHelper

更多详细的安装步骤可以参考 CsvHelper 的 NuGet 页面。

5.2.2 基本设置

在使用 CsvHelper 之前,需要引入命名空间:

using CsvHelper;

5.3 API 概览

5.3.1 CSV读取

CsvHelper 提供了丰富的 API 来读取 CSV 文件。下面是一个简单的示例,假设我们有一个名为 “data.csv” 的 CSV 文件,内容如下:

Name,Age,Role
Alice,25,Developer
Bob,30,Manager

我们可以使用 CsvHelper 读取并解析这个文件:

using (var reader = new StreamReader("data.csv"))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{var records = csv.GetRecords<dynamic>().ToList();foreach (var record in records){Console.WriteLine($"Name: {record.Name}, Age: {record.Age}, Role: {record.Role}");}
}

以上代码创建了一个 CsvReader 对象,然后通过 GetRecords<dynamic>() 方法将 CSV 文件的内容映射到动态类型的记录集合中。

官方文档:CsvHelper - Reading

5.3.2 CSV写入

CsvHelper 同样提供了便捷的 API 来进行 CSV 文件的写入操作。以下是一个简单的示例,将数据写入 CSV 文件:

using (var writer = new StreamWriter("output.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{var records = new List<dynamic>{new { Name = "Eve", Age = 28, Role = "Designer" },new { Name = "Frank", Age = 35, Role = "Engineer" }};csv.WriteRecords(records);
}

以上代码创建了一个 CsvWriter 对象,然后调用 WriteRecords() 方法将动态类型的记录集合写入到 CSV 文件中。

官方文档:CsvHelper - Writing

通过以上示例,我们可以看到 CsvHelper 提供了简单而强大的 API,使得CSV文件的读写操作变得十分容易。

6. NPOI:一个用于操作Excel文件的C#库

NPOI 是一个用于操作 Excel 文件的 C# 库,它提供了丰富的 API 来读取、写入和操作 Excel 文件。

6.1 简介

6.1.1 核心功能

NPOI 提供了强大的功能,包括读取和写入 Excel 文件、创建、编辑和格式化工作表、单元格合并、样式设置等。

6.1.2 使用场景

NPOI 可以在需要对 Excel 文件进行读取、写入和操作的场景下发挥作用,比如数据导出、报表生成等。

6.2 安装与配置

6.2.1 安装指南

你可以通过 NuGet 来安装 NPOI 库,首先打开 Visual Studio,进入你的项目,然后右击项目名称,选择“管理 NuGet 程序包”,在搜索框中输入“NPOI”,选择 NPOI 并点击安装即可。

6.2.2 基本设置

安装完成后,在代码中引入 NPOI 的命名空间:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel; // 如果是.xlsx格式的Excel文件
using NPOI.HSSF.UserModel; // 如果是.xls格式的Excel文件

6.3 API 概览

6.3.1 Excel文件读取

下面是一个简单的例子,演示了如何使用 NPOI 从 Excel 文件中读取数据。

// 创建一个文件流,读取 Excel 文件
using (FileStream file = new FileStream("test.xlsx", FileMode.Open, FileAccess.Read))
{// 使用 XSSFWorkbook 打开 Excel 文件XSSFWorkbook workbook = new XSSFWorkbook(file);// 获取第一个工作表ISheet sheet = workbook.GetSheetAt(0);// 循环读取每一行数据for (int i = 0; i <= sheet.LastRowNum; i++){IRow row = sheet.GetRow(i);if (row != null){// 读取每个单元格数据for (int j = 0; j < row.LastCellNum; j++){Console.Write(row.GetCell(j) + "\t");}Console.WriteLine();}}
}

官网链接:NPOI - Apache

6.3.2 Excel文件写入

以下是一个简单的示例,演示了如何使用 NPOI 创建一个新的 Excel 文件并向其中写入数据。

// 创建一个新的 Excel 文件
XSSFWorkbook workbook = new XSSFWorkbook();// 创建一个工作表
ISheet sheet = workbook.CreateSheet("Sheet1");// 创建一行,索引从0开始
IRow row = sheet.CreateRow(0);// 创建单元格并赋值
row.CreateCell(0).SetCellValue("ID");
row.CreateCell(1).SetCellValue("Name");
row.CreateCell(2).SetCellValue("Age");// 将数据写入到文件
using (FileStream file = new FileStream("output.xlsx", FileMode.Create, FileAccess.Write))
{workbook.Write(file);
}

官网链接:NPOI - Apache

总结

通过本文的介绍,读者可以了解到多个常用的C#库,涵盖了文本处理、HTML文档解析、电子邮件处理、CSV文件读写以及Excel文件操作等多个领域。这些库具有丰富的功能和灵活的API,可以极大地提升C#开发的效率和便利性。建议开发人员根据实际需求,选择合适的库来辅助开发工作,提高代码质量和开发效率。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • NISP 一级 | 3.4 无线局域网安全防护
  • 使用C++11的`std::future`和`std::promise`实现异步网络通信
  • 14_L3缓存友好的数据结构
  • windows服务管理插件 nssm
  • StackTrace在.Net中获取当前线程的堆栈跟踪信息
  • 深入探索Go语言中的函数:匿名函数、指针参数与函数返回
  • Spring Cloud(一)
  • React第四章(babel)
  • python知识点100篇系列(17)-替换requests的python库httpx
  • [项目][WebServer][TcpServer]详细讲解
  • nnunetv2系列:解压zip文件到nnunet默认路径
  • Windows下Python和PyCharm的应用(二)__快捷键方式的设定
  • 前端框架有哪些?全面解析主流前端框架
  • 深入解析五大 LLM 可视化工具:Langflow、Flowise、Dify、AutoGPT UI 和 AgentGPT
  • 出现 E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方法 (全面分析)
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Android优雅地处理按钮重复点击
  • CSS3 变换
  • docker python 配置
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java教程_软件开发基础
  • Linux Process Manage
  • MySQL QA
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Python学习之路16-使用API
  • 浮动相关
  • 机器学习中为什么要做归一化normalization
  • 聊聊redis的数据结构的应用
  • 普通函数和构造函数的区别
  • 实现简单的正则表达式引擎
  • 物联网链路协议
  • 小程序开发中的那些坑
  • 1.Ext JS 建立web开发工程
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​批处理文件中的errorlevel用法
  • ​浅谈 Linux 中的 core dump 分析方法
  • # 数仓建模:如何构建主题宽表模型?
  • #stm32驱动外设模块总结w5500模块
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (C语言)球球大作战
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (过滤器)Filter和(监听器)listener
  • (一) storm的集群安装与配置
  • .Family_物联网
  • .NET CORE Aws S3 使用
  • .net core 连接数据库,通过数据库生成Modell
  • .Net Web窗口页属性
  • .Net 基于MiniExcel的导入功能接口示例
  • .net 无限分类
  • .NET轻量级ORM组件Dapper葵花宝典
  • .stream().map与.stream().flatMap的使用