LinqToExcel:轻松使用Linq操作Excel文件!

推荐一个开源项目,使得我们可以使用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<Company>()
                       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

- End -

推荐阅读

FastEndpoints:轻量级、高性能的ASP.NET Core Web API开发框架

CQRSlite:一个CQRS和事件溯源的.Net轻量级框架!

CsvHelper:一个轻便高性能的Csv文件读写操作开源库!

MudBlazor:一个UI简洁美观漂亮的Blazor开源组件!

Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值