首页 > 其他分享 >.NET导出Excel的四种方法及评测

.NET导出Excel的四种方法及评测

时间:2024-10-18 10:34:37浏览次数:7  
标签:Excel Cells 导出 内存 props var Aspose NET

.NET导出Excel的四种方法及评测

 

.NET导出Excel的四种方法及评测

导出Excel.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOIEPPlusOpenXMLAspose.Cells四个市面上常见的库,各完成一个导出Excel示例。然后对其代码风格和性能做一个横向比较。最后我将说出我自己的感想。

文中所有的示例代码可以在这里下载:
https://github.com/sdcb/blog-data/tree/master/2019/20190824-dotnet-excel-compare

NPOI

NPOI源自于Java写的Apache POI,目前最新版本是2.4.1NPOI是开源项目,作者是华人,项目地址是:https://github.com/tonyqus/npoi

几年前大家导出Excel都使用COM,但COM不方便,这个组件的推出无疑弥补了.NETExcel方面组件的空白,大家都说比COM好用。

NPOI还加入了.NET Core Community组织

EPPlus

EPPlus是另一个开源的Excel操作库,目前最新版本是4.5.3.2Github地址如下:https://github.com/JanKallman/EPPlus

EPPlus仅依赖基础类库(BCL),完全没有第三方包依赖,也是.NET原生库。

EPPlus只支持导出Office 2007之后的格式,也就是xlsx。这已经是存在12年的格式了,但如果有客户想要导出xlsEPPlus将不支持。

OpenXML

OpenXMLNuGet包全称是DocumentFormat.OpenXml:是微软推出的较为低层的Excel操作库,最新稳定版本是2.9.1OpenXML也是开源项目,地址是:https://github.com/OfficeDev/Open-XML-SDK。

从该项目的名字可以看出,OpenXML比较涉及底层,因此很容易令人浮想联翩,感觉它的性能、速度很可能是最快的,但真的如此吗

Aspose.Cells

这是Aspose Pty Ltd公司推出的Excel操作库。它是众多Aspose File Format API产品其中之一。目前最新版本是19.8.0(基于年/月)。Aspose提供了应有尽有的文件格式支持,除了.NET外,Aspose还提供了C++Java的包。

据我所知Aspose的客户支持服务也不错,客户提出的问题经常可以在下一次发布时解决。

Aspose.Cells是不开源,付费的库,但提供无限期的试用,据官方网站显示,试用版将:

  • 限制打开文件数量100个
  • 限制使用Aspose.Cells.GridWeb功能
  • 生成的Excel将添加如下水印:

但经过我的试用,无论是并行还是串行,都没找到限制打开文件数量100个的限制。因此,“试用版”对我们的物理限制,就只有这个水印了(当然加了这个水印客户肯定也不会有好表情

标签:Excel,Cells,导出,内存,props,var,Aspose,NET
From: https://www.cnblogs.com/sexintercourse/p/18473766

相关文章

  • DeviceNet转Profibus DP总线协议转换网关
    一,设备主要功能捷米特JM-DP-DNT网关实现DeviceNet从站设备接入到ProfibusDP网络;也可作为DeviceNet从站,将DeviceNet主站设备接入到Profibus网络。应用广泛:捷米特JM-DP-DNT广泛应用于支持DeviceNet接口的罗克罗尔,欧姆龙,基恩士PLC等主站控制器等等。DeviceNet从站转ProfibusD......
  • .netcore console 日志和配置
    前言做开发一般会写一些console程序进行调试或者小范围的处理,这里记录下console加日志和配置的过程日志日志这里选择serilog,serilog提供sink,控制台这里我们安装sink.Console和Sinke.File。一共三个nuget包SerilogSerilog.Sinks.ConsoleSerilog.Sinks.File然后代码中配......
  • CnetOS安装Tomcat
    CnetOS安装Tomcat第一步:准备环境确保你的CentOS系统是最新的:sudoyumupdate-y第二步:安装必要的软件包安装Java运行环境(JRE)或Java开发工具包(JDK),因为Tomcat需要Java来运行:sudoyuminstalljava-1.8.0-openjdk-devel-y你可以通过以下命令检查Java版本:java-versi......
  • vue,xlsx,xlsx-style,file-saver,生成Excel并导出,cptable报错,合并单元格 样式缺失
    一,安装依赖 二,导入依赖import*asXLSXfrom'xlsx';import*asXLSX_STYLEfrom'xlsx-style'import{saveAs}from'file-saver';三,解决引入xlsx-style./cptable模块找不到问题Thisrelativemodulewasnotfound:*./cptablein./node_modules......
  • 【原创】修复lazport用lrPDFExport导出含中文的pdf中文变为框框的Bug
    lazport用lrPDFExport导出含中文的pdf中文会变为框框。lazport用lrPDFExport导出含中文的pdf中文变为框:修复步骤:打开lr_e_fclpdf.pas1、修改333行的functionDefFontName:string; 增加缺省字体:宋体/仿宋/楷体/和黑体等字体对名称,修改后如果系统如已安装以下字体之一就可以正常......
  • 【图吧小白教程】免会员导出剪映AI字幕
    额……老铁们,我图吧老字幕组组长了。最近咱不是谈过PCDN放血BT导致宽带封号上传限速问题吗:【图吧杂谈】正确认识PCDN放血BT并导致运营商封号上传限速的问题当时视频版评论区里正好有人提供了清晰度不如4年前!视频变糊是你的错觉吗_-影视飓风这个被视频删除的事,所以垃圾佬也简......
  • 使用vs2022将.net8的应用程序发布为一个单独文件
    在使用.NetCore3.1时,可以通过设置以下工程配置文本来将项目发布为一个单独的应用程序文件:<ProjectSdk="Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><UseWPF>true</UseWPF> <Publi......
  • 文档管理 | 文档目录结构和文件情况的查看与导出
    1.操作原理tree命令用于以树形结构显示目录中的文件和子目录,也能将文件目录结构导出在Windows中。以下是它的一些常见用法:1.1基本语法tree[drive:][path][/F][/A]1.2参数说明[drive:][path]:指定要显示的驱动器和路径。如果不指定,则显示当前目录的结构。/F:显示每个......
  • Citrix NetscalerStoreFront负载均衡 Load Balancing(精华)
    CitrixNetscalerStoreFront负载均衡LoadBalancing(精华)1.依次展开TrafficManagement/LoadBalancing/Servers,点add添加 在此,我的两台storefront已经全部添加进去4.依次展开TrafficManagement/LoadBalancing/Monitors,点击add添加 6.依次展开TrafficMa......
  • 【Adobe】Adobe Media Encoder(ME)视频和音频媒体文件的编码和导出下载安装
    目录一、AdobeMediaEncoder发展历史1.1起源与早期发展1.2独立软件的形成1.3广泛应用与持续创新二、AdobeMediaEncoder功能介绍2.1高效编码与导出2.2自定义输出设置2.3强大的媒体处理能力三、AdobeMediaEncoder系统要求3.1操作系统要求3.2硬件要求......