zoukankan      html  css  js  c++  java
  • C#使用NPOI对Excel文档进行读、写、导入、导出等操作的dll最新版2.5.1+2.3.0

    C#使用NPOI对Excel文档进行读、写、导入、导出等操作的dll最新版2.5.1+2.3.0

    dll最新版2.5.1,支持.NET4.0 /.NET4.5以及v2.3.0(最后一个支持.NET2.0的版本)。下载:https://download.csdn.net/download/dserver/12391101

    NPOI的官方主页:http://npoi.codeplex.com/ 

    Nuget:https://www.nuget.org/packages/NPOI/

    简介
    NPOI 是 POI 项目的 .NET 版本。NPOI是构建在POI 3.x版本之上的开源项目,它可以在没有安装Office的情况下对Word/Excel文档进行读、写、导入、导出等操作。因为是开源项目,可以完全免费使用,而不会有版权问题。最主要的是不需要安装微软的Office,这对于部署在服务器上的项目就非常重要了,因为有的服务器不能安装或无法安装Office;对于Winform项目来说,因为微软的Office的版权,安装文件大等问题,很多的电脑上安装的都是WPS,使用NPOI就不必要求部署的电脑都要安装Office。


    1、关于版本
    最新版本:2.5.1 发布日期:2020年4月4日
    支持.NET Framework 4.0 / .NET Framework 4.5 / .NET Standard 2.0
    版本:2.3.0 发布日期:2017年3月20日
    支持.NET Framework 2.0 / .NET Framework 4.0
    v2.3.0是最后一个支持.NET Framework 2.0的版本。

    2、类库文件说明
    NPOI.DLL 命名空间包括:NPOI.POIFS(OLE2/ActiveX文档属性读写库)、NPOI.DDF(微软Office Drawing读写库)、NPOI.HPSF(OLE2/ActiveX文档读写库)、NPOI.HSSF(Excel BIFF 97-2003的xls格式 , doc格式读写库)、NPOI.SS(Excel公用接口及Excel公式计算引擎)、NPOI.Util(基础类库,提供了很多实用功能,可用于其他读写文件格式项目的开发);
    NPOI.OOXML.DLL 命名空间包括:NPOI.XSSF(Excel 2007(xlsx)格式读写库)、NPOI.XWPF(Word 2007(docx)格式读写库);
    NPOI.OpenXml4Net.DLL 命名空间包括:NPOI.OpenXml4Net(OpenXml底层zip包读写库);
    NPOI.OpenXmlFormats.DLL 命名空间包括:NPOI.OpenXmlFormats(微软Office与OpenXml对象关系库,它定义了所有OOXML对象和C#对象的映射关系,并协助进行序列化和反序列化);

    了解了类库文件的作用,我们在引用的时候就可以只引用自己需要的dll文件,然后using命名空间即可,对于不需要的可以不引用,一般来说,只需要引用NPOI.dll和NPOI.OOXML.dll这两个文件即可;如果只读写xls而不读写xlsx,甚至只引用一个NPOI.dll即可。


    3、在Visual Studio中引用DLL文件
    在Visual Studio的解决方案资源管理器窗口中的项目下的“引用”上右键->添加引用,浏览到NPOI.DLL所在位置,确定即可。
    引用后,记得把它属性里的“复制到本地”选择为 True;
    代码里using NPOI.HSSF。

    当然,直接简单的方法是不用dll,而用Nuget,但这个方法下载来的还是不太纯洁;),虽然说是官方,但有的还是自己用不到的,比如那个zip。

    4、Npoi导入导出Excel操作
    接下来就可以使用Npoi对Excel进行导入导出操作了。

    5、NPOI之最简操作

    最简单的操作之前必须先理解的几个重要对象

    IWorkbook --- 对应Excel里的工作簿
    ISheet --- 对应Excel里的工作表
    IRow --- 对应Excel里的行
    ICell --- 对应Excel里的单元格

    Workbook对象
    通过它可以操作两种格式的Excel,一种是*.xls(HSSFWorkbook),一种是*.xlsx(XSSFWorkbook)
    IWorkbook wk = new HSSFWorkbook(); (创建Excel97-2003格式的工作簿)
    IWorkbook wk = new XSSFWorkbook();(创建Excel2007-2016格式的工作簿)

    ISheet对象
    通过它可以操作两种格式的Excel的工作表,一种是*.xls(HSSFSheet),一种是*.xlsx(XSSFSheet)
    ISheet sheet = wk.CreateSheet(""); //在工作簿中创建工作表
    ISheet sheet = workbook.GetSheetAt(int index);//获取已有的工作表

    IRow对象
    IRow对象实现对ISheet(工作表)中的行控制,如创建行,获取行
    IRow row = sheet.CreateRow(1);//在工作表中创建行
    IRow row2 = sheet.GetRow(1);//获取工作表中的行
    sheet.RemoveRow(row2);//删除工作表中的行

    ICell对象
    ICell对象可以实现对行单元格的控制
    ICell cell = row.CreateCell(int index);//在行中创建单元格
    cell.SetCellValue("Hello");//为单元格赋值
    string strGetCellValue = cell.StringCellValue;//获取单元格值

    下面创建Excel97-2003格式的xls文件:

     1 IWorkbook workbook = new HSSFWorkbook();//创建Excel工作簿(Excel97-2003)
     2 ISheet sheet = workbook.CreateSheet("sheet1");//在工作簿中创建工作表
     3 IRow row = sheet.CreateRow(1);//在工作表中创建行
     4 ICell cell = row.CreateCell(1);//在行中创建单元格
     5 cell.SetCellValue("Hello");//为单元格赋值
     6 MemoryStream ms = new MemoryStream();
     7 workbook.Write(ms);//写入内存流
     8 
     9 using (FileStream fs = new FileStream(@"D:Npoi20200507.xls", FileMode.Create, FileAccess.Write, FileShare.None, 4096, true))//写入指定的文件
    10 {
    11 byte[] b = ms.ToArray();
    12 fs.Write(b, 0, b.Length);
    13 ms.Close();
    14 fs.Flush();
    15 fs.Close();
    16 }

    现在到D盘下去看看,是不是多了个Npoi20200507.xls文件,用Office或WPS打开看看。

  • 相关阅读:
    (转)使用vsphere client 克隆虚拟机
    【转】VIM高级用法笔记
    Oracle RAC的Failover
    /dev/shm过小导致ORA00845错误解决方法
    (转)How to use udev for Oracle ASM in Oracle Linux 6
    ORACLE十进制与十六进制的转换
    解决Oracle RAC不能自动启动的问题
    RAC集群时间同步服务
    db link hang的解决方法
    【转载】Oracle数据恢复 Linux / Unix 误删除的文件恢复
  • 原文地址:https://www.cnblogs.com/netserver/p/12841213.html
Copyright © 2011-2022 走看看