NPOI简介

时间:2024-05-21 07:34:35

前言:在程序开发中我们会经常遇到excel导出,导入等功能。今天给大家分享一款非常方便的excel操作的组件NPOI
每当我接触一个新东西的时候我都喜欢从下面几个方面来学习这个新东西。

  • 这个东西是什么?
  • 这个东西有什么用?
  • 这个东西该怎么用?–简易demo
    今天我就从这三个方面分享一下我对npoi的理解。

NPOI是什么?

关于NPOI就一句话,这是一个开源的C#读写Excel,Word的组件。它可以在没有安装Office的情况下对word,Excel文档进行读写操作。

NPOI有什么用?

要说NPOI的作用,就需要对比Office的com组件来进行说明了。
在C#开发中,在npoi之前我们操作excel是通过Office的com组件来实现对word,excel的读写操作的,而使用com组件经常会遇到以下问题:

  • 使用com组件,则必须要在服务器端安装office,还要设置权限访问等操作使用起来非常的麻烦。而且经常会遇到服务安装的office版本与开发环境安装的office版本不一致,导致程序在服务器无法正常的运行。(我在实际开发中就遇到过,实在是糟心)。
  • Com组件读取Excel数据的时候,会把只包含数字的列进行数据类型转换。如:00123,我们可能是是一个“00123”的字符串,但是com组件读取的时候会读取为123.
    3.com组件导出Excel的时候,如果单元哥内容中包含“-”或“=” ,Excel会把它当成公式进行计算,从而导致报错 。
    4.Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似1.42702E+17格式,日期列变成包含日期和数字的。

看到了使用com组件带来的种种诟病,我们再来看NPOI

  • 使用NPOI我们不需要安装其它软件,只需要在程序中引入NPOI这个组件就可以对Excl和Word进行操作了。(我觉着就这个已经给了我足够的理由去使用NPOI了)
  • 使用NPOI是免费的。
  • NPOI包含了大部分Excel的特性(单元格样式,数据格式,公式操作等)

还有更多我们可以在百度文库中看到更详细的介绍。推荐这里大家去文库中看看,有个更全面的了解,我就不在这里做更多的赘述了。
参考链接:NPOI-百度文库

我们该怎么使用NPOI?

说完了为什么使用,接下来我们看看我们要如何在项目开发中使用NPOI
我们要想获取NPOI组件的方法有很多,网上有很多渠道可以获取到对应dll。这里我给大家介绍一种我认为的比较正规的在项目中使用nopi的方法。在VS中 Nuget包管理器为我们添加各种dll提供了便捷的方式。

使用NuGet添加NPOI

NPOI简介
NPOI简介

引入命名空间,即可使用

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
这是创建*.xlsx文件必须要引入的命名空间。.xls文件需要引用的命名空间与.xlsx文件是不同的,这个我在后面会将,今天先以xlsx的为例
NPOI简介
我这里之前有写过一篇使用NPOI创建excel的文件,供大家参考:NPOI创建一个excel

更多内容,我会在后续的博文中分享给大家。