推荐一个开源项目,使得我们可以使用LINQ语法来查询、修改Excel文件
中的数据,极大地简化了Excel数据的处理过程。
01
项目简介
LinqToExcel 是一个 .NET 库,它允许开发者使用 LINQ语法来查询 Excel 电子表格和 CSV 文件中的数据,开发者可以像操作数据库一样方便地处理Excel文件。
不过要注意的是需要安装 Microsoft Access Database Engine 2010 Redistributable,这里需要Excel文件所需的数据引擎。
02
项目核心功能
1、LINQ 语法支持:允许使用 LINQ 语法查询 Excel 电子表格和 CSV 文件中的数据。
2、查询:可通过默认工作表 “Sheet1” 或通过名称指定的工作表,查询数据。
3、属性映射到列:支持将 Excel 列名映射到 .NET 类的属性,包括使用 AddMapping() 方法或 ExcelColumn 属性。
4、动态类型查询:通过 LinqToExcel.Row 类,可以在不预先定义类的情况下查询工作表,并通过字符串索引访问单元格值。
5、支持查询没有列标题的工作表,通过索引获取单元格值。
6、支持命名范围查询:可以针对工作表中的命名范围进行查询。
7、特定单元格范围查询:允许查询工作表中定义的特定单元格范围。
8、CSV 文件查询:CSV文件支持与Excel相同的查询操作。
9、元数据检索:能够检索工作表名称和列名,方便获取电子表格结构。
10、映射严格性设置:通过 StrictMapping 属性,可以设置映射的严格性,确保数据映射的正确性。
11、未映射列值保留:在适当的映射严格性设置下,可以通过实现 IContainsUnmappedCells 接口保留未映射的列值。
12、数据库引擎选择:允许手动设置使用 Jet 或 Ace 数据库引擎,以适应不同的 Excel 文件格式。
13、空白处理:提供去除单元格值前后空白的功能。
14、持久连接:支持持久连接,允许在整个应用程序中重用同一个数据库连接。
15、支持只读模式:支持以只读模式打开 Excel 文件,避免对文件的意外修改。
16、延迟加载:支持延迟加载数据,即按需逐行读取数据,而不是一次性加载到内存中。
03
使用方法
1、安装依赖
Install-Package LinqToExcel
Install-Package System.Data.OleDb
2、使用示例
using LinqToExcel;
//打开文件
var excel = new ExcelQueryFactory(“1.xlsx”);
//LINQ查询
var indianaCompanies = from c in excel.Worksheet()
where c.State == “IN”
select c;
//遍历输出
foreach(var company in indianaCompanies)
{
Console.WriteLine(company.ID);
}
//映射的实体
class Company
{
public int ID { get; set; }
public string State { get; set; }
}
04
项目地址
https://github.com/paulyoder/LinqToExcel
声明:文中观点不代表本站立场。本文传送门:http://eyangzhen.com/418655.html