.NET Core 2.0 开源Office组件 NPOI

前言

去年 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,因为社区项目是需要大家共同来经营的。

另外给我的另外一个开源项目 CAP 打个广告。

CAP 是一个在 .NET Core 中实现分布式事务及EventBus 的解决方案,如果你正在构建分布式或者微服务系统欢迎关注 Star 一下。

https://github.com/dotnetcore/CAP

原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-npoi.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jzoj4274-终章-剑之魂【位运算,贪心】

正题 大意 有n把剑,每一把剑有一个值aiai,然后两把剑的契合值是ai and ajaiandaj,求最大契合值。 解题思路 先把每个a转换成二进制 我们可以先从高位到低位。如果一个位数有超过一把剑那么这两个剑合在一起的值一定比任何这个位位为0的合在…

老师们一直在……

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。【随便写写】为了了解同学们在公司的情况,和佟老师上了的做了个在线问卷调查,把一些常见的问题设置在调查中,根据调查数据,然后挨个的去解决…

海量数据的分库分表技术演进,最佳实践

转载自 海量数据的分库分表技术演进,最佳实践 每个优秀的程序员和架构师都应该掌握分库分表,移动互联网时代,海量的用户每天产生海量的数量 用户表订单表交易流水表 以支付宝用户为例,8亿;微信用户更是10亿。订单表…

Orleans例子再进一步

步骤 现在我想再添加一个方法,到IGrains项目内,这个方法里面有个延迟3秒,然后返回一个Task<string>.就叫做DelayedMsg吧,如下图所示: 我调用了这个DelayedMsg,同时又调用了SayHello函数,看看效果:注意这个DelayedMsg的调用方法没有await. 虽然我的SayHello的调用时间紧随…

2018/7/12-纪中某C组题【jzoj4272,jzoj4273,jzoj4274】

前言 今天我的想法都是正解&#xff0c;也都写了&#xff0c;结果才160QwQ 今日分数 去掉了十分强大的纪中dalao 正题 T1&#xff1a;jzoj4272-序章-弗兰德的秘密【树形dp】 博客链接&#xff1a;https://blog.csdn.net/mr_wuyongcong/article/details/81021994 T2&#xf…

你,下周可否“报上有名”?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。一周一次周测&#xff0c;一直在延续&#xff0c;一般情况下不会间断。以前我只要一说&#xff0c;同学们&#xff0c;咱们本周周五考试&#xff0c;下面的同学们就沸腾的不行了&#xff0c;有的说…

Redis的3个高级数据结构

转载自 Redis的3个高级数据结构 平常接触最多的是5个入门级数据结构&#xff1a;String&#xff0c;Hash&#xff0c;List&#xff0c;Set&#xff0c;Sorted Set&#xff0c;本文介绍3个高级数据结构&#xff1a;Bitmaps&#xff0c;Hyperloglogs&#xff0c;GEO。 Bitmap…

SpringCloudConfig整合Nacos

SpringCloudConfig 的作用是可以进行配置的更新处理&#xff0c;这个的确是很好&#xff0c;但是原始的SpringCloudNetflix 架构所提供的动态的抓取配置实在是太繁琐了&#xff0c;包括还要使用到SpringCloudBus进行Actuator处理 SpringCloudAlibaba套件之中是基于Nacos 实现的…

使用VS Code开发调试.NET Core 2.0

使用VS Code 从零开始开发调试.NET Core 2.0。无需安装VS 2017 15.3即可开发调试.NET Core 2.0应用。 VS Code 全称是 Visual Studio Code&#xff0c;Visual Studio Code是一个轻量级的跨平台Web集成开发环境&#xff0c;可以运行在 Linux&#xff0c;Mac 和Windows下&#x…

jzoj3382-七夕祭【贪心,中位数】

正题 大意 有k个摊点&#xff0c;有n行m列&#xff0c;每次只能让摊点移动到相邻的格子&#xff08;如果相邻的有那么就交换&#xff09;。要求最少的移动次数让每行每列的摊点数一样&#xff0c;如果不行就输出只能做到行或只能做到列或都不行。注意最上面一行和最下面一行相…

不管什么事,只要用心做,总不会太差!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】。KTV项目基本已经做完&#xff0c;于是自上周五以来就开始挨个小组的进行试讲。上周五第一次试讲&#xff0c;只讲了三个小组&#xff0c;整体来说讲的都不行。组员与组长之间的协调不统一&#xff…

学生自定义的键盘,功能强大齐全!!!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天给大家介绍一款键盘&#xff0c;本款键盘属于私人订制&#xff0c;“专业性”很强&#xff0c;且功能齐全&#xff0c;在使用时可以一人使用&#xff0c;在某种特定的场合下&#xff0c;两…

jzoj3383-太鼓达人【欧拉回路,位运算】

正题 大意 一个数K&#xff0c;求一个最长的01环形序列&#xff08;头和尾相连&#xff09;&#xff0c;使得每个长度为k的连续子序列都不相同。&#xff08;要输出这个串&#xff0c;如果有多个答案输出字典序最小的&#xff09; 解题思路 尝试将长度为k的01序列全排列一下我…

度量.net framework 迁移到.net core的工作量

把现有的.net framework程序迁移到.net core上&#xff0c;是一个非常复杂的工作&#xff0c;特别是一些API在两个平台上还不能同时支持。两个类库的差异性,通过人工很难识别全。好在微软的工程师们考虑到了我们顾虑&#xff0c;为我们提前设计了一个工具&#xff1a;.NET Port…

深入理解Java ClassLoader及在 JavaAgent 中的应用

转载自 深入理解Java ClassLoader及在 JavaAgent 中的应用 背景 众所周知, Java 或者其他运行在 JVM(java 虚拟机)上面的程序都需要最终便以为字节码,然后被 JVM加载运行,那么这个加载到虚拟机的过程就是 classloader 类加载器所干的事情.直白一点,就是 通过一个类的全限定…

如何从Gitee中拉取项目到HBuilder中?

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。今天&#xff0c;给大家分享一下&#xff0c;如何使用HBuilder连接gitee&#xff0c;进行代码的提交&#xff08;明天在看&#xff09;与拉取。1首先&#xff0c;在HBuilder中下载Git的插件…

jzoj3384-理工男【欧拉定理,gcd,数论】

正题 大意 给出一个分数ABAB求它在k进制下的小数循环。 如果是有限小数直接输出位数 无限循环输出混循环节和循环节长度。 代码 直接切正题 用a数组表示每一位的余数&#xff0c;然后a[0]Aa[0]A&#xff0c;之后a[1]a[0]∗K%Ba[1]a[0]∗K%B&#xff0c;然后如果有q位那么a…

ASP.NET Core Razor页面 vs MVC

作为.NET Core 2.0发行版的一部分&#xff0c;还有一些ASP.NET的更新。其中之一是添加了一个新的Web框架来创建“页面”&#xff0c;而不需要复杂的ASP.NET MVC。新的Razor页面是一个比较简单的MVC框架版本&#xff0c;在某些方面是老的“.aspx” WebForms的演变。 在本文中&a…

Gradle 简单使用

文章目录创建Gradle项目dependencies.gradlegradle.propertiesbuild.gradleGradle配置文件详解dependency-management 插件SpringBootPlugin 插件多模块热部署创建Gradle项目 dependencies.gradle ext.versions [ // 定义所有要使用的版本号springboot: 2.4.1 // Spri…

Nginx可以做什么?看完这篇你就懂了

转载自 Nginx可以做什么&#xff1f;看完这篇你就懂了 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情&#xff0c;由于第三方模块太多所以也介绍不完&#xff0c;当然本文本身也可能介绍的不完整&#xff0c;毕竟只是我个人使用过和了解到过得&#xff0c;欢迎留言…