【C#生态园】提升数据处理效率:C#中多款数据清洗库全面解析

数据清洗利器:探索C#中的多款数据处理库

前言

在现代软件开发中,数据清洗和处理是非常常见的任务。特别是在C#开发中,处理各种数据文件如CSV、Excel等是一个必不可少的环节。为了更高效地完成这些任务,我们需要依赖一些优秀的数据清洗库。

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

文章目录

  • 数据清洗利器:探索C#中的多款数据处理库
    • 前言
    • 1. CsvHelper:一个用于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. ExcelDataReader:一个用于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. NPOI:一款基于.NET的Excel读写库
      • 3.1 简介
        • 3.1.1 核心功能
        • 3.1.2 使用场景
      • 3.2 安装与配置
        • 3.2.1 安装指南
        • 3.2.2 基本设置
      • 3.3 API 概览
        • 3.3.1 Excel创建
        • 3.3.2 Excel操作
    • 4. ClosedXML:一个简单易用的开源.NET库,用于处理Excel文件
      • 4.1 简介
        • 4.1.1 核心功能
        • 4.1.2 使用场景
      • 4.2 安装与配置
        • 4.2.1 安装指南
        • 4.2.2 基本设置
      • 4.3 API 概览
        • 4.3.1 Excel导入
        • 4.3.2 Excel导出
    • 5. EPPlus:一款用于操作Excel的开源库
      • 5.1 简介
        • 5.1.1 核心功能
        • 5.1.2 使用场景
      • 5.2 安装与配置
        • 5.2.1 安装指南
        • 5.2.2 基本设置
      • 5.3 API 概览
        • 5.3.1 Excel加载
        • 5.3.2 Excel保存
    • 6. GemBox.Spreadsheet:一个.NET组件,用于读写和操作电子表格文件
      • 6.1 简介
        • 6.1.1 核心功能
        • 6.1.2 使用场景
      • 6.2 安装与配置
        • 6.2.1 安装指南
        • 6.2.2 基本设置
      • 6.3 API 概览
        • 6.3.1 电子表格创建
        • 6.3.2 电子表格编辑
    • 总结

1. CsvHelper:一个用于C#的数据清洗库

CsvHelper 是一个流行的 C# 库,用于处理 CSV 格式的数据。它提供了丰富的功能和灵活的 API,可以帮助开发人员轻松地读取和写入 CSV 文件,并对数据进行清洗和转换。

1.1 简介

1.1.1 核心功能

CsvHelper 提供了以下核心功能:

  • 读取 CSV 数据并将其映射到.NET 对象
  • 将.NET 对象写入 CSV 格式
  • 支持自定义类型转换和数据映射
  • 强大的异常处理和验证机制
1.1.2 使用场景

CsvHelper 可以应用于许多场景,包括但不限于:

  • 数据清洗和转换
  • 导入/导出 CSV 数据
  • 与其他系统进行数据交互

1.2 安装与配置

1.2.1 安装指南

通过 NuGet 包管理器或 .NET CLI 安装 CsvHelper:

Install-Package CsvHelper

或者使用 .NET CLI:

dotnet add package CsvHelper
1.2.2 基本设置

引入命名空间:

using CsvHelper;
using CsvHelper.Configuration;
using System.Globalization;
using System.IO;
using System.Linq;

1.3 API 概览

1.3.1 数据读取
public class Person
{public string Name { get; set; }public int Age { get; set; }
}void ReadCsvData()
{using (var reader = new StreamReader("path/to/csv/file.csv"))using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture)){var records = csv.GetRecords<Person>().ToList();foreach (var person in records){Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");}}
}

具体示例请参考:CsvHelper - 数据读取

1.3.2 数据写入
void WriteCsvData(List<Person> people)
{using (var writer = new StreamWriter("path/to/output.csv"))using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)){csv.WriteRecords(people);}
}

更多内容请参考:CsvHelper - 数据写入

以上是 CsvHelper 的简要介绍和基本用法,欲了解更多详细信息,请参阅 CsvHelper 官方文档。

2. ExcelDataReader:一个用于C#的数据清洗库

2.1 简介

ExcelDataReader 是一个用于 C# 的库,可以帮助我们进行 Excel 数据的读取和清洗操作。它提供了丰富的 API,使得数据处理变得简单高效。

2.1.1 核心功能

ExcelDataReader 主要用于解析和处理 Excel 文件中的数据,可以将 Excel 表格中的数据转换为 C# 中的数据结构,方便后续的数据处理和分析。

2.1.2 使用场景

ExcelDataReader 可以广泛应用于需要对 Excel 文件中的数据进行清洗、分析和处理的场景,比如数据导入导出、报表生成等业务中常见的需求。

2.2 安装与配置

2.2.1 安装指南

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

Install-Package ExcelDataReader
2.2.2 基本设置

安装完成后,可以通过引入相应的命名空间来开始使用 ExcelDataReader:

using Excel;
using System.IO;

2.3 API 概览

2.3.1 数据解析

ExcelDataReader 提供了丰富的方法来解析 Excel 文件中的数据。下面是一个简单的示例代码,演示了如何使用 ExcelDataReader 来读取 Excel 文件中的数据:

using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{IExcelDataReader reader = null;if (Path.GetExtension(filePath).Equals(".xls")){reader = ExcelReaderFactory.CreateBinaryReader(stream);}else if (Path.GetExtension(filePath).Equals(".xlsx")){reader = ExcelReaderFactory.CreateOpenXmlReader(stream);}var result = reader.AsDataSet(new ExcelDataSetConfiguration(){UseColumnDataType = false,ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration(){UseHeaderRow = true}});// 处理 result 中的数据
}

更多关于数据解析的详细信息可以参考 ExcelDataReader 文档。

2.3.2 数据处理

ExcelDataReader 不仅可以用来解析数据,还提供了一些简单的数据处理功能,比如数据筛选、转换等。以下是一个简单的示例,演示了如何对 Excel 数据进行简单的处理:

// 假设已经获取到了 Excel 数据集合 data
var dataTable = data.Tables[0];
var rows = dataTable.Select("ColumnName = 'SomeValue'");foreach (var row in rows)
{// 处理符合条件的行
}

更多关于数据处理的详细信息可以参考 ExcelDataReader 文档。

3. NPOI:一款基于.NET的Excel读写库

NPOI 是一款基于 .NET 平台,用于读写 Microsoft Office 格式文件(包括 Excel 以及 Word)的开源库。在数据清洗领域,NPOI 能够帮助我们处理 Excel 文件,进行数据提取、转换和加载等操作。

3.1 简介

3.1.1 核心功能

NPOI 提供了丰富的 API,允许我们对 Excel 文件进行创建、读取、修改和保存等操作。其核心功能包括:

  • 创建新的 Excel 文档
  • 读取现有的 Excel 文档
  • 修改和操作 Excel 文档中的数据
  • 保存 Excel 文档

官网链接: NPOI GitHub

3.1.2 使用场景

NPOI 在各种场景下都能发挥作用,包括但不限于:

  • 批量数据导入导出
  • 数据报表生成
  • 数据清洗与处理

3.2 安装与配置

3.2.1 安装指南

通过 NuGet 包管理器可以很方便地安装 NPOI。

Install-Package DotNetCore.NPOI
3.2.2 基本设置

在使用 NPOI 之前,需要引入相应的命名空间。

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

3.3 API 概览

3.3.1 Excel创建
// 创建一个工作簿
IWorkbook workbook = new XSSFWorkbook();// 创建一个工作表
ISheet sheet1 = workbook.CreateSheet("Sheet1");// 创建行
IRow row = sheet1.CreateRow(0);// 创建单元格并赋值
row.CreateCell(0).SetCellValue("Hello");
row.CreateCell(1).SetCellValue("World");// 保存Excel文件
using (FileStream file = new FileStream("workbook.xlsx", FileMode.Create, FileAccess.Write))
{workbook.Write(file);
}
3.3.2 Excel操作
// 读取Excel文件
using (FileStream file = new FileStream("workbook.xlsx", FileMode.Open, FileAccess.Read))
{IWorkbook workbook = new XSSFWorkbook(file);ISheet sheet = workbook.GetSheetAt(0);IRow row = sheet.GetRow(0);if (row != null){Console.WriteLine(row.GetCell(0).StringCellValue);Console.WriteLine(row.GetCell(1).StringCellValue);}
}

通过以上代码示例,我们展示了如何使用 NPOI 创建和操作 Excel 文件。NPOI 提供了丰富的 API 和灵活性,使得我们能够轻松地在 .NET 平台上进行 Excel 文件的读写操作。

4. ClosedXML:一个简单易用的开源.NET库,用于处理Excel文件

4.1 简介

ClosedXML 是一个用于处理 Excel 文件的开源 .NET 库,提供了丰富的功能和简单易用的 API,使得在 C# 中操作 Excel 变得更加便捷。无需安装 Office 或使用 COM 亦能实现对 Excel 的读写操作。

4.1.1 核心功能

ClosedXML 主要提供以下核心功能:

  • 创建、打开、编辑和保存 Excel 文件
  • 对工作表进行操作,如添加、删除或隐藏
  • 支持单元格格式设置、合并、拆分等操作
  • 导入导出数据到 Excel 文件
4.1.2 使用场景

ClosedXML 可以被广泛应用于需要对 Excel 进行自动化处理的场景,例如报表生成、数据导入导出等业务场景。

4.2 安装与配置

4.2.1 安装指南

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

Install-Package ClosedXML
4.2.2 基本设置

安装完成后,即可通过 using ClosedXML.Excel; 引入 ClosedXML 库,并开始使用其提供的功能。

4.3 API 概览

4.3.1 Excel导入

ClosedXML 提供了丰富的 API 用于从 Excel 文件中导入数据。以下是一个简单的示例代码,演示了如何从已有的 Excel 文件中读取数据:

using (var workbook = new XLWorkbook("sample.xlsx"))
{var worksheet = workbook.Worksheet(1);var cellValue = worksheet.Cell("A1").Value.ToString();
}

更多关于数据导入的 API 和示例可以参考官方文档。

4.3.2 Excel导出

除了导入,ClosedXML 也提供了便捷的 API 用于将数据导出至 Excel 文件。以下示例展示了如何创建一个新的 Excel 文件,并向其中写入数据:

using (var workbook = new XLWorkbook())
{var worksheet = workbook.Worksheets.Add("Sheet1");worksheet.Cell("A1").Value = "Hello";worksheet.Cell("B1").Value = "World";workbook.SaveAs("output.xlsx");
}

更多关于数据导出的 API 和示例可以参考官方文档。

5. EPPlus:一款用于操作Excel的开源库

EPPlus 是一款用于操作 Excel 的开源库,它提供了丰富的 API,便于开发人员对 Excel 进行快速、灵活的操作。

5.1 简介

5.1.1 核心功能

EPPlus 主要提供以下核心功能:

  • 创建、修改和操作 Excel 文档
  • 读取和写入 Excel 单元格数据
  • 支持图表、样式和格式设置等功能
5.1.2 使用场景

EPPlus 可以被广泛应用于以下场景:

  • 生成报表
  • 数据导出到 Excel
  • 对已有 Excel 进行数据处理

5.2 安装与配置

5.2.1 安装指南

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

Install-Package EPPlus
5.2.2 基本设置

在使用 EPPlus 前,需要引入 EPPlus 的命名空间:

using OfficeOpenXml;

5.3 API 概览

5.3.1 Excel加载

EPPlus 提供了加载 Excel 文档的功能,示例代码如下:

// 新建一个Excel包
using (ExcelPackage package = new ExcelPackage())
{// 添加一个工作表ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");// 设置单元格的值worksheet.Cells["A1"].Value = "Hello, EPPlus!";// 保存工作簿package.SaveAs(new FileInfo(@"D:\sample.xlsx"));
}

更多关于 Excel 加载的信息,请参考 EPPlus - Load Excel。

5.3.2 Excel保存

EPPlus 允许将修改后的 Excel 文档保存到指定路径,示例代码如下:

// 读取一个Excel文件
using (ExcelPackage package = new ExcelPackage(new FileInfo(@"D:\sample.xlsx")))
{// 获取第一个工作表ExcelWorksheet worksheet = package.Workbook.Worksheets[0];// 读取单元格的值Console.WriteLine(worksheet.Cells["A1"].Value);
}

更多关于 Excel 保存的信息,请参考 EPPlus - Save Excel。

6. GemBox.Spreadsheet:一个.NET组件,用于读写和操作电子表格文件

6.1 简介

GemBox.Spreadsheet是一个.NET组件,旨在简化对电子表格文件(如Excel)的读取和编辑操作。它提供了丰富的API,使得开发人员可以轻松地创建、编辑和转换电子表格文件,并支持多种常见的电子表格格式,包括XLSX、XLS、CSV等。

6.1.1 核心功能

GemBox.Spreadsheet的核心功能包括:

  • 读取和写入电子表格文件
  • 创建新的电子表格文件
  • 编辑现有的电子表格文件
  • 支持各种常见的电子表格格式
6.1.2 使用场景

GemBox.Spreadsheet适用于以下场景:

  • 数据导入和导出
  • 数据清洗和处理
  • 自动化报告生成
  • 业务数据分析

6.2 安装与配置

使用GemBox.Spreadsheet前,需要进行安装和基本设置。

6.2.1 安装指南

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

Install-Package GemBox.Spreadsheet
6.2.2 基本设置

安装完成后,在项目中引用GemBox.Spreadsheet命名空间:

using GemBox.Spreadsheet;

6.3 API 概览

GemBox.Spreadsheet提供了丰富的API,下面将介绍一些常用的操作。

6.3.1 电子表格创建

通过以下示例,演示了如何使用GemBox.Spreadsheet创建一个新的电子表格文件并添加数据:

// 如果没有许可证,则将显示一个水印。
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");// 创建一个新的工作簿。
var workbook = new ExcelFile();// 添加新工作表。
var worksheet = workbook.Worksheets.Add("Sheet1");// 写入数据到单元格。
worksheet.Cells["A1"].Value = "Hello";
worksheet.Cells["B1"].Value = "World!";// 保存工作簿。
workbook.Save("Output.xlsx");

以上代码演示了如何使用GemBox.Spreadsheet创建一个新的电子表格文件,并在其中写入数据。更多关于电子表格创建的操作,请参考官方文档。

6.3.2 电子表格编辑

GemBox.Spreadsheet还提供了丰富的编辑功能,包括单元格样式设置、公式计算等。以下示例展示了如何设置单元格的样式:

// 设置单元格字体样式。
var style = worksheet.Rows[0].Style;
style.Font.Weight = ExcelFont.BoldWeight;
style.FillPattern.SetSolid(Color.LightGray);// 保存工作簿。
workbook.Save("Output.xlsx");

以上代码演示了如何使用GemBox.Spreadsheet设置单元格的字体样式和背景色。更多关于电子表格编辑的操作,请参考官方文档。

总结

通过阅读本文,读者可以全面了解C#中几个常用的数据清洗库,包括它们的核心功能、使用场景、安装配置和API概览。针对不同的需求,可以选择最适合的库来提升数据处理的效率和质量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决PyCharm 2023 Python Packages列表为空

原因是因为没有设置镜像源 展开 > 之后&#xff0c;这里 点击齿轮 添加一个阿里云的源 最后还需要点击刷新 可以选择下面的任意一个国内镜像源&#xff1a; 清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple 阿里云&#xff1a;http://mirrors.aliyun.com/…

设计模式之-策略模式配合枚举

1、定义枚举接收不同的参数使用不同的handler, 2、定义个handerl接口&#xff0c;统一方法处理&#xff0c;每个handler实现该接口 public interface IMethodHandler<T, R> {/*** 处理统一入口** param req*/R process(T req); } java3、定义一个简单工厂统一处理 Comp…

送给正在入行的小白:最全最有用的网络安全学习路线已经安排上了,零基础入门到精通,收藏这一篇就够了

在这个圈子技术门类中&#xff0c;工作岗位主要有以下三个方向&#xff1a; 安全研发安全研究&#xff1a;二进制方向安全研究&#xff1a;网络渗透方向 下面逐一说明一下。 第一个方向&#xff1a;安全研发 你可以把网络安全理解成电商行业、教育行业等其他行业一样&#xf…

k8s 1.28.2 集群部署 harbor v2.11.1 接入 MinIO 对象存储

文章目录 [toc]提前准备什么是 HarborHarbor 架构描述Harbor 安装的先决条件硬件资源软件依赖端口依赖 Harbor 在 k8s 的高可用Harbor 部署Helm 编排YAML 编排创建 namespace导入镜像部署 Redis部署 PostgreSQL部署 Harbor core部署 Harbor trivy部署 Harbor jobservice部署 Ha…

RTSP流图片采样助手(yolov5)

在监控和视频分析领域&#xff0c;实时采样视频流中的图像数据是十分重要的。本文将介绍一个基于Python和Tkinter构建的RTSP流图片采样助手的设计与实现&#xff0c;旨在简化RTSP流的采样过程&#xff0c;并支持根据用户定义的特殊标签进行筛选。 项目概述 该项目的主要功能包…

Data+AI下的数据湖和湖仓一体发展史

DataAI下的数据湖和湖仓一体发展史 前言数据湖的“前世今生”AI时代的救星&#xff1a;湖仓一体湖仓一体实践演进未来趋势&#xff1a;智能化、实时化结语 前言 数据湖&#xff1f;湖仓一体&#xff1f;这是什么高科技新名词&#xff1f; 别急&#xff0c;我们慢慢聊。想象一…

ICT产业新征程:深度融合与高质量发展

在信息时代的浪潮中&#xff0c;每一场关于技术革新与产业融合的盛会都闪耀着智慧的光芒&#xff0c;引领着未来的方向。9月25日&#xff0c;北京国家会议中心内&#xff0c;一场聚焦全球信息通信业的顶级盛事——第32届“国际信息通信展”&#xff08;PT展&#xff09;隆重拉开…

Maven基于构建阶段分析多余的依赖

基于构建阶段 test compile 实现依赖分析 执行maven 命令: mvn dependency:analyze 关注:Maven-dependency-plugin 分析结果: [INFO] --- maven-dependency-plugin:2.10:analyze (default-cli) impl --- 配置依赖未使用的依赖项&#xff1a; [INFO] --- maven-dependency-…

Linux基础项目开发day2:量产工具——输入系统

文章目录 前言一、数据结构抽象1、数据本身2、设备本身3、input_manager.h 二、触摸屏编程1、touchscreen.c 三、触摸屏单元测试1、touchscreen.c2、上机测试 四、网络编程netiput.c 五、网络单元测试1、netiput.c2、client.c3、上机测试 六、输入系统的框架1、框架思路2、inpu…

数据库设计与开发—初识SQLite与DbGate

一、SQLite与DbGate简介 &#xff08;一&#xff09;SQLite[1][3] SQLite 是一个部署最广泛、用 C 语言编写的数据库引擎&#xff0c;属于嵌入式数据库&#xff0c;其作为库被软件开发人员嵌入到应用程序中。 SQLite 的设计允许在不安装数据库管理系统或不需要数据库管理员的情…

sublime配置(竞赛向)

我也想要有jiangly一样的sublime 先决条件 首先&#xff0c;到官网上下载最新的sublime4&#xff0c;然后在mingw官网上下载最新的mingw64 mingw64官网&#xff1a;左边菜单栏点击dowloads,然后选择MinGW-W64-builds(可能会有点慢)——然后有时候会变成选LLVM-minGW,接着选择…

linux c国际化

一种locale表示一种文化的各种数据的表示或显示方式&#xff0c;一种locale分成多个部分&#xff0c;不同的部分由category表示&#xff0c;每一种category下面定义了很多关键字keyword locale -a 查看所有支持的locale&#xff0c; locale 不带参 查看当前locale的各个categ…

大语言模型怎么写好提示词,看这篇就够了

对于任何输入&#xff0c;大语言模型都会给出相应的输出&#xff0c;这些输入都可以成为提示词&#xff0c;通常&#xff0c;提示词由指令和输入数据组成&#xff0c;指令是任务&#xff0c;输入数据是完成的要求&#xff0c;其中指令应该明确&#xff0c;用词不能模棱两可&…

centos7.9升级rockylinux8.8

前言 查看centos的版本 &#xff0c;我这台服务器是虚拟机,下面都是模拟实验 升级前一定要把服务器上配置文件&#xff0c;数据等进行备份 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_ser…

【C++进阶】AVL树的实现

1. AVL的概念 AVL树是最先发明的⾃平衡⼆叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的⼆叉搜索树&#xff1a;它的左右⼦树都是AV树&#xff0c;且左右⼦树的⾼度差的绝对值不超过1。AVL树是⼀颗⾼度平衡搜索⼆叉树&#xff0c;通过控制⾼度差去控制平衡…

SLM201A系列24V, 15mA - 60mA单通道线性恒流LED驱动芯片 灯带灯条解决方案

SLM201A系列型号&#xff1a; SLM201A15aa-7G SLM201A20aa-7G SLM201A25aa-7G SLM201A30aa-7G SLM201A35aa-7G SLM201A40aa-7G SLM201A45aa-7G SLM201A50aa-7G SLM201A55aa-7G SLM201A60aa-7G SLM201A 系列产品是用于产生单通道、高…

基于FPGA的以太网设计(一)

以太网简介 以太网&#xff08;Ethernet&#xff09;是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准&#xff0c;它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术&#xff0c;取代了其他局域网标准如…

【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍

文章目录 前言安装新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法待续 完结 前言 2024/10/17其实unity就已…

gitlab:ssh设置

我用的是window&#xff0c;先打开终端&#xff1a; 1、输入 ssh-skygen 执行 然后输入路径&#xff0c;路径地址就是后面括号内的内容 2、然后直接下一步下一步即可&#xff0c;像上面那样就成了 3、打开公钥&#xff0c;复制 4、打开gitlab&#xff0c;在我的 Edit profil…

JUnit 单元测试(详解)

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主&#xff0c;华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f9…