ClosedXML: 简单操作 Excel 文件

为什么选择 ClosedXML?
虽然 Open XML SDK 功能强大,但它的学习难度大,代码也复杂。ClosedXML 在此基础上做了封装,提供了更简单的接口,让操作 Excel 更容易。

主要特性:
• 可以读取、编辑和创建 Excel 文件。
• 不依赖 Microsoft Office。
• 提供简单易用的 Fluent API。
• 支持 .NET Framework 4.0+ 和 .NET Standard 2.0+。
• 可用于 Web 应用、控制台程序等多种场景。
快速上手
通过 NuGet 包管理器快速安装 ClosedXML:


PM> Install-Package ClosedXML

创建一个 Excel 文件并写入数据


using (var workbook = new XLWorkbook())
{
    var worksheet = workbook.Worksheets.Add("Sheet1");
    worksheet.Cell("A1").Value = "Hello World!";
    worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
    
    workbook.SaveAs("HelloWorld.xlsx");
}

性能
ClosedXML 处理大型 Excel 文件时也有不错的表现。例如:

场景
行数
列数
插入数据时间
保存时间
总内存消耗
混合类型数据
25 万行
15 列
1.6 秒 / 117 MiB
6.3 秒
477 MiB
纯文本数据
100 万行
10 列
6.3 秒 / 402 MiB
17.1 秒
1880 MiB

即使是百万级数据,也能在几十秒内完成操作,适合后台批量处理任务。

常见问题与注意事项
• 字体缺失错误:如果出现找不到字体的问题,可以设置默认字体解决:
LoadOptions.DefaultGraphicEngine = new DefaultGraphicEngine(“Arial”);
• 线程安全:目前 ClosedXML 不支持多线程并发访问同一个工作簿对象,请避免这种情况。
• Linux 支持:建议升级到 v0.97 或更高版本,这样兼容性更好。
扩展
除了主库,ClosedXML 社区还提供了一些扩展项目,方便你在不同框架中使用:

• ClosedXML.Report:模板化报告生成。
• ClosedXML.Extensions.AspNet:ASP.NET 集成。
• ClosedXML.Extensions.Mvc:MVC 应用集成。
• ClosedXML.Extensions.WebApi:Web API 支持。

GitHub 地址
https://github.com/ClosedXML/ClosedXML

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
评论 抢沙发
  • 武穆逸仙

    昵称

  • 取消回复

    请填写用户信息:

图片正在生成中,请稍后...