NPOI的一些使用心得以及C#用office组件开发的一些问题

             NPOI的一些使用心得以及C#用office组件开发的一些问题

一  为什么用NPOI

  其实如果只是在VS开发excel插件,那一般都是用office组件的东西,用不用NPOI都没有太大的关系,但是我的新任务是在WindowsForm上做一个exe,然后把这些excel插件功能导入进去,然后就出现了问题了。

遇到的问题1:在WindowsForm想要打开excel,并使用一些查询读取功能时,发现使用不了?

解决:需要引用Microsoft.Office.Interop.Excel.dll就可以了(去百度下载就行,挺容易的)

遇到的问题2:使用office组件查询读取的时候太慢了,又太卡了?

解决:真的超级慢,实话实话,要不然也不会学着使用NPOI了......如果是直接开发WindowsForm想打开excel并读取写入的话,这里强烈建议用NPOI,千万别用office的组件,所以你看到这可以不需要管问题1,因为不需要这个dll(感觉水了一个问题,哈哈哈)

二 如何使用NPOI

引用下面4个dll

去搜就好了挺多的,下载就行,找这4个引用,要是需要开会员的话可以来评论发qq,我发给你们。

然后加进去下面的代码,就可以使用NPOI啦。

切记!!!!!NPOI读取时,是从0开始的,也就是说excel里面的第一列,用NPOI来读取就是第0列,或者第一个sheet表用NPOI读就是第0个表,下面代码会用示例。

一些简单的使用NPOI代码:

得到最后一行:int rows = sheet.LastRowNum;

有人会发现怎么没有得到某一列的方法,好像NPOI里是没有直接得到最后一列或者说某一列的,没有类似GetRow的方法得到某一列,所以要得到最后一列的话,一般都是选取某一行,得到这一行的最后一列的列数。如:

int row1=sheet.GetRow(i);  int columns= row1.LastCellNum;

这是得到第i行的列数。

(可能也是我才疏学浅,不知道更直接的方法,要是有大佬知道欢迎补充)

然后重点来了!!!这里读取的时候有个坑(我被卡了好久!!!)NPOI读取时不像office组件读取,读取要是遇到空单元格,会报错

在这里我教大家一个解决方法,就是写一个方法,代码如下:

这个方法可以直接避免报错,只要读到空单元格,就会返回空字符串,不为空单元格,便会读取单元格内容转化为string;

然后再写代码的时候就可以直接调用它读取数据啦

像我这里就是直接调用方法,得到了第3行第3列单元格内容,还有第4行第4列单元格内容。

 

后记:

大概NPOI我就运用到这里,一些写入的方法呀还有什么的,需要的可以去搜一下,其实不难的,这里就不讲啦,一点浅显的知识,一些自己遇到的一些小问题,不喜欢勿嘲笑哈哈哈。

 

 

我是慢雨,谢谢你的浏览。觉得有用的能点个赞吗,想看看有没有看到了我的文章(0.0)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值