[转帖].NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测
https://www.cnblogs.com/sdflysha/p/20190824-dotnet-excel-compare.html
导出Excel
是.NET
的常见需求,开源社区、市场上,都提供了不少各式各样的Excel
操作相关包。本文,我将使用NPOI
、EPPlus
、OpenXML
、Aspose.Cells
四个市面上常见的库,各完成一个导出Excel
示例。然后对其代码风格和性能做一个横向比较。最后我将说出我自己的感想。
文中所有的示例代码可以在这里下载:
https://github.com/sdcb/blog-data/tree/master/2019/20190824-dotnet-excel-compare
NPOI
NPOI
源自于Java
写的Apache POI,目前最新版本是2.4.1
。NPOI
是开源项目,作者是华人,项目地址是:https://github.com/tonyqus/npoi。
几年前大家导出Excel
都使用COM
,但COM
不方便,这个组件的推出无疑弥补了.NET
在Excel
方面组件的空白,大家都说比COM
好用。
NPOI
还加入了.NET Core Community组织。
EPPlus
EPPlus
是另一个开源的Excel
操作库,目前最新版本是4.5.3.2
。Github
地址如下:https://github.com/JanKallman/EPPlus。
EPPlus
仅依赖基础类库(BCL
),完全没有第三方包依赖,也是.NET
原生库。
EPPlus
只支持导出Office 2007
之后的格式,也就是xlsx
。这已经是存在12年的格式了,但如果有客户想要导出xls
,EPPlus
将不支持。
OpenXML
OpenXML
的NuGet
包全称是DocumentFormat.OpenXml
:是微软推出的较为低层的Excel
操作库,最新稳定版本是2.9.1
。OpenXML
也是开源项目,地址是: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个的限制。因此,“试用版”对我们的物理限制,就只有这个水印了(当然加了这个水印客户肯定也不会有好表情
[转帖].NET导出Excel的四种方法及评测的更多相关文章
- .NET导出Excel的四种方法及评测
.NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...
- Java报表工具FineReport导出EXCEL的四种API
在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出 ...
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
先上代码 <script type="text/javascript" language="javascript"> var idTmr; ...
- HTML用JS导出Excel的五种方法
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- asp.net 导出excel的一种方法
项目用到的一种导出excel 的方法予以记录:(具体的业务类可更具情况替换使用) protected void Export(string filename, List<ComponentCon ...
- C#导出EXCEL的几种方法
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- ASP.Net数据导出Excel的几种方法
方法一 通过GridView(简评:方法比较简单,但是只适合生成格式简单的Excel,且无法保留VBA代码),页面无刷新 aspx.cs部分 代码如下: using System; using Sys ...
- delphi 导出到excel的7种方法
本文来自 爱好者8888 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/kpc2000/article/details/17066823?utm_source=cop ...
- Delphi 导出数据至Excel的7种方法【转】
一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery): ...
随机推荐
- 关于VGA显示实验的问题
今天做了一个关于VGA的显示实验,但是由于产生的25M时钟不正确所以一直没有图像产生.刚开始的程序如下 虽然仿真的时候出现了时序,但是在下载到硬件的时候不正确. 后来改成 结果就正确了. 另外之前关于 ...
- 【概率论】3-6:条件分布(Conditional Distributions Part II)
title: [概率论]3-6:条件分布(Conditional Distributions Part II) categories: Mathematic Probability keywords: ...
- LOJ2537. 「PKUWC2018」Minimax [DP,线段树合并]
传送门 思路 首先有一个\(O(n^2)\)的简单DP:设\(dp_{x,w}\)为\(x\)的权值为\(w\)的概率. 假设\(w\)来自\(v1\)的子树,那么有 \[ dp_{x,w}=dp_{ ...
- python网络爬虫(一):网络爬虫的定义
网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开 ...
- vue 中引入第三方js库
以 jQuery 为例 一.绝对路径直接引入,全局可用 主入口页面 index.html 中用 script 标签引入: <script src="./static/jquery-1. ...
- Nginx 出现 403 Forbidden 最终解决方法
Nginx 出现 403 Forbidden 最终解决 步骤一: 检查目录权限.权限不足的就加个权限吧. 例子:chmod -R 755 / var/www 步骤二: 打开nginx.conf 例子: ...
- Hearthstone AI
search keyword `machine learning hearthstone` with google I am a legend: Hacking Hearthstone with ma ...
- linux安装后需要进行的一些基本设置
修改网络: 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后重启网络服务:systemctl restart network.servic ...
- git如何压栈某一个文件?
答: 使用git stash -p进行交互式操作,y表示压栈,n表示不压栈
- springboot 整合缓存(Ehcache或者reids)
这里介绍Spring Boot结合JPA,MySQL和Ehcache实现缓存功能,提高程序访问效率. 一.Maven依赖 <!-- caching --> <dependency&g ...