【开源力荐】一个简单高效、低内存的 .NET 处理 Excel 文件的实用类库

360影视 欧美动漫 2025-05-29 08:31 2

摘要:致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!

致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!

MiniExcel 是一个简单高效的 .NET 处理 Excel 查、写、填充数据的实用工具类库,旨在避免内存溢出(OOM)问题。目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。

MiniExcel 适用于需要高效处理大量 Excel 数据的各种场景,包括但不限于:

大数据导入导出。

Excel 报表生成。

数据分析与处理。

Web 应用中的 Excel 文件上传下载。

低内存消耗:避免内存溢出(OOM)和频繁的垃圾回收(GC)。

实时行操作:支持对每一行数据进行实时操作。

LINQ 延迟执行:支持低消耗、快速分页和其他复杂查询。

轻量级:无需安装 Microsoft Office,无 COM+ 依赖,DLL 大小小于 150KB。

易用 API:提供简洁易用的 API 风格,方便读写和填充 Excel 文件。

Query 查询 Excel 返回强型别 IEnumerable 数据public class UserAccount
{
public Guid ID { get;set; }
public string Name { get;set; }
public DateTime BoD { get;set; }
public int Age { get;set; }
public bool VIP { get;set; }
public decimal Points { get;set; }
}

var rows = MiniExcel.Query(path);

// or

using (var stream = File.OpenRead(path))
var rows = stream.Query;
查询所有 Sheet 名称跟数据var sheetNames = MiniExcel.GetSheetNames(path);
foreach (var sheetNameinsheetNames)
{
var rows = MiniExcel.Query(path, sheetName: sheetName);
}
指定单元格开始读取数据MiniExcel.Query(path,useHeaderRow:true,startCell:"B3")
合并的单元格填充 var config = new OpenXmlConfiguration
{
FillMergedCells =true
};
var rows = MiniExcel.Query(path, configuration: config);

来源:opendotnet

相关推荐