当前位置 博文首页 > 文章内容

    NPOI使用手册:段传涛 的专栏

    作者:shunshunshun18 栏目:未分类 时间:2021-10-17 17:38:07

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    推荐 IIS7批量FTP管理工具 IIS7批量FTP管理
    IIS7批量FTP管理功能说明:
    1、可批量导入,导出FTP信息
    2、其他ftp工具有的功能,我们也有
    3、特色功能:可以定时上传下载
    4、数据信息列表化、一眼就能知道那个是那个
    5、批量连接 标签页式切换 方便快捷
    6、7大连接模式 更多好的兼容
    7、内嵌编辑器 有效解决普通txt记事本乱码
    8、锁屏功能 当程序有规定时间内没人操作,则自动锁程序。输入密码才可以正常操作

    本产品适用于:懒得记录FTP信息和有批量定时备份,上传下载的运维或站长。

    图:


    IIS7批量FTP管理

    NPOI使用手册

    此内容转自:http://blog.csdn.net/pan_junbiao/article/details/39717443

    1.认识NPOI

     

    2. 使用NPOI生成xls文件

    2.1 创建基本内容

    2.1.1创建WorkbookSheet

    2.1.2创建DocumentSummaryInformationSummaryInformation

    2.1.3创建单元格

    2.1.5创建批注

    2.1.6创建页眉和页脚

     

    2.2 单元格操作

    2.2.1设置格式

    2.2.2合并单元格

    2.2.3对齐相关设置

    2.2.4使用边框

    2.2.5字体设置

    2.2.6背景和纹理

    2.2.7设置宽度和高度

     

    2.3 使用Excel公式

    2.3.1基本计算

    2.3.2 SUM函数

    2.3.3日期函数

    2.3.4字符串相关函数

    2.3.5 IF函数

    2.3.6 CountIfSumIf函数

    2.3.7 Lookup函数

    2.3.8随机数函数

    2.3.9通过NPOI获得公式的返回值

     

    2.4 创建图形

    2.4.1画线

    2.4.2画矩形

    2.4.3画圆形

    2.4.4Grid

    2.4.5插入图片

     

    2.5打印相关设置

      
    2.6 
    高级功能

    2.6.1调整表单显示比例

    2.6.2设置密码

    2.6.3组合行、列

    2.6.4锁定列

    2.6.5显示/隐藏网格线

    2.6.6设置初始视图的行、列

    2.6.7数据有效性

    2.6.8生成下拉式菜单

     

    3. 项目实践

    3.1基于.xls模板生成Excel文件

    3.2生成九九乘法表

    3.3生成一张工资单

    3.4xls文件中抽取文本

    3.5巧妙使用ExcelChart

    3.6导入Excel文件

     

    NPOI 1.2教程 - 1 认识NPOI

    本章将介绍NPOI的一些基本信息,包括以下几个部分

    ·        什么是NPOI

    ·        版权说明

    ·        相关资源

    ·        团队介绍

    ·        未来展望

    ·        Assembly的作用

     

    1.1 什么是NPOI

    NPOI,顾名思义,就是POI.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。在本文发布时,POI的最新版本是3.5 beta 6

    NPOI 1.x是基于POI 3.x版本开发的,与poi 3.2对应的版本是NPOI 1.2,目前最新发布的版本是1.2.1,在该版本中仅支持读写Excel文件和Drawing格式,其他文件格式将在以后的版本中得到支持。

     

    1.2 版权说明

    NPOI采用的是Apache 2.0许可证(poi也是采用这个许可证),这意味着它可以被用于任何商业或非商业项目,你不用担心因为使用它而必须开放你自己的源代码,所以它对于很多从事业务系统开发的公司来说绝对是很不错的选择。

    当然作为一个开源许可证,肯定也是有一些义务的,例如如果你在系统中使用NPOI,你必须保留NPOI中的所有声明信息。对于源代码的任何修改,必须做出明确的标识。

    完整的apache 2.0许可证请见http://www.phpx.com/man/Apache-2/license.html

     

    1.3 相关资源

    官方网站:http://npoi.codeplex.com/

    POIFS Browser 1.2

    下载地址:http://npoi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24305

    QQ交流群:  78142590

     

    1.4 团队介绍

    Tony Qu来自于中国上海,是这个项目的发起人和开发人员,时区是GMT+820089月开始了NPOI的开发,负责NPOI所有底层库的开发、测试和bug修复。

    个人blog地址为http://tonyqus.cnblogs.com/

     

    HüseyinTüfekçilerli来自于土耳其的伊斯坦布尔,也是这个项目的开发人员,时区是GMT+2200811月参与了NPOI的开发,主要负责POIFS Browser 1.0的开发工作。

    个人blog地址为http://huseyint.com/

     

    aTao.Xiang,来自中国,20098月开始参与该项目,主要参与了NPOI 1.2中文版的撰写工作和推广工作

    个人blog地址为http://www.cnblogs.com/atao/

     

    1.5 回顾与展望

    目前POI版本中的HWPF(用于Word的读写库)还不是很稳定,并非正式发布版本,且负责HWPF的关键开发人员已经离开,所以NPOI可能考虑自己重新开发HWPF。另外,目前微软正在开发Open XML Format SDKNPOI可能会放弃对ooxml的支持,当然这取决于用户的需求和Open XML Format SDK的稳定性和速度。从目前而言,NPOI有几大优势

    第一,完全基于.NET 2.0,而非.NET 3.0/3.5

    第二,读写速度快(有个国外的兄弟回复说,他原来用ExcelPackage生成用了4-5个小时,现在只需要4-5分钟)

    第三,稳定性好(相对于用Office OIA而言,毕竟那东西是基于Automation做的,在Server上跑个Automation的东西,想想都觉得可怕),跑过了将近1000个测试用例(来自于POItestcase目录)

    第四,API简单易用,当然这得感谢POI的设计师们

    第五,完美支持Excel 2003格式(据说myxls无法正确读取xls模板,但NPOI可以),以后也许是所有Office 2003格式

    希望NPOI把这些优势继续发扬下去,这样NPOI才会更有竞争力。

     

    1.6 NPOI 1.2中各Assembly的作用

    NPOI目前有好几个assembly,每个的作用各有不同,开发人员可以按需加载相应的assembly。在这里大概罗列一下:

    NPOI.Util  基础辅助库
    NPOI.POIFS   OLE2
    格式读写库
    NPOI.DDF   Microsoft Drawing
    格式读写库
    NPOI.SS   Excel
    公式计算库
    NPOI.HPSF   OLE2
    Summary InformationDocument Summary Information属性读写库
    NPOI.HSSF   Excel BIFF
    格式读写库

     

    NPOI 1.2教程 - 2.1.1 创建WorkbookSheet

    作者:Tony Qu

    NPOI官方网站:http://npoi.codeplex.com/

      

    创建Workbook说白了就是创建一个Excel文件,当然在NPOI中更准确的表示是在内存中创建一个Workbook对象流。

    本节作为第2章的开篇章节,将做较为详细的讲解,以帮助NPOI的学习者更好的理解NPOI的组成和使用。

    NPOI.HSSF是专门负责Excel BIFF格式的命名空间,供开发者使用的对象主要位于NPOI.HSSF.UserModelNPOI.HSSF.Util命名空间下,下面我们要讲到的Workbook的创建用的就是NPOI.HSSF.UserModel.HSSFWorkbook类,这个类负责创建.xls文档。

    在开始创建Workbook之前,我们先要在项目中引用一些必要的NPOI assembly,如下所示:

    NPOI.dll

    NPOI.POIFS.dll

    NPOI.HSSF.dll

    NPOI.Util.dll

     

    要创建一个新的xls文件其实很简单,只要我们初始化一个新的HSSFWorkbook实例就行了,如下所示:

    using NPOI.HSSF.UserModel;

    ...

    HSSFWorkbookhssfworkbook =newHSSFWorkbook();

    是不是很方便啊,没有任何参数或设置,但这么创建有一些限制,这样创建出来的WorkbookExcel中打开是会报错的,因为Excel规定一个Workbook必须至少带1Sheet,这也是为什么在Excel界面中,新建一个Workbook默认都会新建3Sheet。所以必须加入下面的创建Sheet的代码才能保证生成的文件正常:

    HSSFSheetsheet = hssfworkbook.CreateSheet("newsheet");

    如果要创建标准的Excel文件,即拥有3Sheet,可以用下面的代码:

    hssfworkbook.CreateSheet("Sheet1");

    hssfworkbook.CreateSheet("Sheet2");

    hssfworkbook.CreateSheet("Sheet3");

    最后就是把这个HSSFWorkbook实例写入文件了,代码也很简单,如下所示:

    FileStreamfile =new FileStream(@"test.xls", FileMode.Create);

    hssfworkbook.Write(file);

    file.Close();

     

    这里假设文件名是test.xls,,在创建完FileStream之后,直接调用HSSFWorkbook类的Write方法就可以了。

    最后你可以打开test.xls文件确认一下,是不是有3个空的Sheet

    相关范例请见NPOI 1.2正式版中的CreateEmptyExcelFile项目。

     

    NPOI 1.2教程 - 2.1.2 创建DocumentSummaryInformationSummaryInformation

    作者:Tony Qu

    NPOI官方网站:http://npoi.codeplex.com/

    昨天收到了不少回复,有msn上的,也有blog上的,我代表NPOI Team向所有支持和关注NPOI的兄弟表示感谢,让我们共同完善NPOI

     

    前一节中我们讲解了如何创建一个新的Workbook,但在此过程中大家也许会发现一个细节,这些文件没有包括DocummentSummaryInformationSummaryInformation头。如果你还不是很清楚我在说什么,可以看POIFS Browser打开test.xls文件后的截图:

    你会发现只有Workbook目录,其他什么都没有,但事实上一个正常的xls文件,比如说Excel生成的xls文件是类似下面的结构:

    是不是多出来DocumentSummaryInformationSummaryInformation两个头?很多人可能对DocumentSummaryInformationSummaryInformation很陌生,可能第一次听说这玩意,没事,这很正常,因为普通用户很少会去使用这些东西,但它们其实比想象中有用。

    请看上图中的信息,如作者、标题、标记、备注、主题等信息,其实这些信息都是存储在DocummentSummaryInformationSummaryInformation里面的,这么一说我想大家应该明白了吧,这些信息是为了快速提取文件信息准备。在Windows XP中,也有对应的查看和修改界面,只是没有Vista这么方便,如下所示:

    这恐怕也是很多人对于这些信息漠不关心的原因吧,因为没有人愿意通过右击文件->属性这样复杂的操作去查看一些摘要信息。

     

    提示

    DocummentSummaryInformationSummaryInformation并不是Office文件的专利,只要是OLE2格式,都可以拥有这两个头信息,主要目的就是为了在没有完整读取文件数据的情况下获得文件的摘要信息,同时也可用作桌面搜素的依据。要了解DocummentSummaryInformation的全部属性请见http://msdn.microsoft.com/en-us/library/aa380374(VS.85).aspx;要了解SummaryInformation的全部属性请见http://msdn.microsoft.com/en-us/library/aa369794(VS.85).aspx

     

    好了,说到这里,我想大家对于接下来我们要创建的内容有了初步的认识,下面我们就马上动手创建。

    首先引用以下这些命名空间:

    using NPOI.HSSF.UserModel;

    using NPOI.HPSF;

    using NPOI.POIFS.FileSystem;

    其中与DocummentSummaryInformationSummaryInformation密切相关的是HPSF命名空间。

    首先创建Workbook

    HSSFWorkbookhssfworkbook =newHSSFWorkbook();

    然后创建DocumentSummaryInformation

    DocumentSummaryInformationdsi = PropertySetFactory.CreateDocumentSummaryInformation();

    dsi.Company ="NPOI Team";

    再创建SummaryInformation

    SummaryInformationsi = PropertySetFactory.CreateSummaryInformation();

    si.Subject ="NPOI SDK Example";

    因为是范例,这里仅各设置了一个属性,其他都没有设置。

    现在我们把创建好的对象赋给Workbook,这样才能保证这些信息被写入文件。

    hssfworkbook.DocumentSummaryInformation= dsi;

    hssfworkbook.SummaryInformation= si;

    最后和2.1.1节一样,我们把Workbook通过FileStream写入文件。

     

    相关范例请见NPOI 1.2正式版中的CreatePOIFSFileWithProperties

     

    NPOI 1.2教程 - 2.1.3 创建单元格

    作者:Tony Qu

    NPOI官方网站:http://npoi.codeplex.com/

     

    用过Excel的人都知道,单元格是Excel最有意义的东西,我们做任何操作恐怕都要和单元格打交道。在Excel中我们要添加一个单元格只需要点击任何一个单元格,然后输入内容就是了,但是Excel底层其实没有这么简单,不同的单元格是有不同的类型的,比如说数值单元格是用NumberRecord表示,文本单元格是用LabelSSTRecord表示,空单元格是用BlankRecord表示。这也就意味着,在设置单元格时,你必须告诉NPOI你需要创建哪种类型的单元格。

    要创建单元格首先要创建单元格所在的行,比如,下面的代码创建了第0行:

    HSSFSheetsheet1 = hssfworkbook.CreateSheet("Sheet1");

    HSSFRowrow1=sheet1.CreateRow(0);

    行建好了,就可以建单元格了,比如创建A1位置的单元格:

    row1.CreateCell(0).SetCellValue(1);

    这里要说明一下,SetCellValue有好几种重载,你可以设置单元格为booldoubleDateTimestringHSSFRichTextString类型。其中对于string类型的重载调用的就是HSSFRichTextString类型的重载,所以是一样的,HSSFRichTextString