.NET Core 2.0 开源Office组件 NPOI

news/2024/7/7 21:40:56 标签: c#, java

前言

去年 12 月,我移植了大家所熟知 NPOI 到 .NET Core 版本,这里是当时发的博客,当时得到了很多同学的支持,社区反应也很好,在这里非常感谢当时推荐的朋友们。

去年的那个版本是针对于 .NET Core 1.0 的,从发布截止现在在 NuGet 大概有 2K 多的下载量,说明还是有很多同学在使用 NPOI 的,社区中也得到了很多同学的推广。 但是上一个移植的版本也有诸多缺陷和 bug,在 Github 上也收到了一些 Issue 进行反馈,很多 Bug 可能是移植过程中的bug,但是对于这些 Bug 可能我也无能为力,因为 NPOI 的代码是非常庞大和复杂的。

随着 .NET Core 2.0 的发布,我又重新移植了一遍 NPOI,注意是重新移植而不是从 1.0 版本迁移过来,由于 .NET Standard 2.0 的 API 增加了很多,所以移植过程还算顺利,这次移植应该是最大限度的保持了 NPOI 的原汁原味,敬请客官体验。

什么是 NPOI

NPOI 是 构建在POI 3.x 版本之上的一个C#库,NPOI 可以在没有安装Office的情况下对 Word 或 Excel 文档进行读写操作。

POI是一个开源 的Java 读写Excel、WORD等微软OLE2组件文档的项目。

NPOI 由瞿总和他的团队由 Apache POI 移植到 .NET 的,以下是NPOI Github 地址:
https://github.com/tonyqus/npoi

Getting Started

移植版的 NPOI 是基于 .NET Standard 2.0 的,也就是说你可以在基于 .NET Core 2.0, .NET Frameework 4.6.1 等项目中进行引用使用。

新的 NPOI Github 代码仓库仍然使用了之前移植的仓库,另外开了一个新的分支(standard2.0)来存放新版本的代码,现在这个仓库已经不在我个人的 Github 下了,已经贡献给了 .NET China Foundation,下面是 Github 地址:

NPOI Standard 2.0 (Apache 2.0):
https://github.com/dotnetcore/NPOI

新的 NPOI 几个库打包成为了一个 DLL,已经发布到了 NuGet,你可以在 Visual Studio 包管理器命令窗口中通过以下命令来安装:

PM> Install-Package DotNetCore.NPOI

使用方法就不在这里描述了,使用方式包括命名空间都和 NPOI 一样,不会的百度即可。

PS : NPOI 好像是唯一能同时支持 office 2003,2007+ 的库

总结

如果你在使用的过程中有什么问题,可以在 Github 给我们提交 Issue,当然最好你能够参与进来给我们提交 PR,因为社区项目是需要大家共同来经营的。

立即访问http://market.azure.cn


http://www.niftyadmin.cn/n/1119907.html

相关文章

OCP-1Z0-051 补充题库 第43题 子查询

一、原题 Exhibit contains the structure of PRODUCTS table: Evaluate the following query: What would be the outcome of executing the above SQL statement? A. It produces an error B. It shows the names of products whose list price is the second h…

解决“此电脑上没有安装True Speech声音×××”的方法

解决“此电脑上没有安装True Speech声音”的方法很多朋友也许都和我一样同学学习别人的视频来了解和掌握从书本上没有学到的东西。并且很多视频都是屏幕录像专家录制的。当播放时出现“此电脑上没有True Speech声音,无法播放此文件中的声音,可能是你的操…

禅道 bug指向为数字问题解决过程

browse.html.php <td <?php if($bug->assignedTo $this->app->user->account) echo class"red";?>><?php echo zget($users, $bug->assignedTo, $bug->assignedTo);?></td>转载于:https://www.cnblogs.com/cb168/p/5…

列举你能想到的UNIX信号,并说明信号用途

信号是一种软中断&#xff0c;是一种处理异步事件的方法。一般来说&#xff0c;操作系统都支持许多信号。尤其是UNIX&#xff0c;比较重要应用程序一般都会处理信号。 UNIX定义了许多信号&#xff0c;比如SIGINT表示中断字符信号&#xff0c;也就是CtrlC的信号&#xff0c;SIG…

MailBee.NET Objects退回邮件教程(一):SMTP部分

2019独角兽企业重金招聘Python工程师标准>>> MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持&#xff0c;简单高效。具备“必需”以及独特的功能&#xff0c;这些控件帮助开…

OCP-1Z0-051 补充题库 第44题 NATURAL JOIN自然连接

一、原题 View the Exhibits and examine the structures of the PRODUCTS, SALES, and CUSTOMERS tables.You issue the following query: SQL>SELECT p.prod_id,prod_name,prod_list_price, quantity_sold,cust_last_name FROM products p NATURAL JOIN sal…

easyui datagrid 前台分页

核心方法 //分页data function pagerFilter(data, pagegrid) {if (typeof data.length number && typeof data.splice function) { // is arraydata {total: data.length,rows: data}}var dg pagegrid || $(this);var opts dg.datagrid(options);var pager dg.da…

WireShark (二)

用WireShark从http数据包中得到用户登录信息 http://www.blogjava.net/heyang/archive/2011/04/05/340330.html转载于:https://www.cnblogs.com/hyzhou/archive/2012/02/29/2373173.html