你的位置:首页 > 软件开发 > ASP.net > 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

发布时间:2016-12-12 10:00:12
很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI。 NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel报表,并且在后台调用Microsoft Excel ActiveX更有效率 ...

  很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI。

  NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel报表,并且在后台调用Microsoft Excel ActiveX更有效率;从Office文档中提取文本,以帮助您实现全文索引功能(大多数时候,此功能用于创建搜索引擎); 从Office文档提取图像; 生成包含公式的Excel工作表。

 一.NPOI组件概述:

     NPOI是完全免费使用; 涵盖Excel的大多数功能(单元格样式,数据格式,公式等);支持xls,xlsx,docx;设计为面向接口(看看NPOI.SS命名空间);支持不仅导出而且导入; .Net 2.0甚至为xlsx和docx(虽然我们也支持.NET 4.0); 来自世界各地的成功案例;巨大的基本例子;对隔离存储没有依赖。

     以上是NPOI的优点,其他一些优点可以不用太在意,估计很多人对“支持xls,xlsx,docx”这一特点感觉有些惊讶,因为在很多人的印象里面NPOI就是对Excel进行相关的操作,但是在这里突然看到了对docx也可以操作,这一特点可能让很多人感到欣喜,因为NPOI的的确确是一个很不错的组件,用过的人都说好,我也不例外。

    NPOI的运行要求:VS2010与.NET 4.0运行时;VS2005或VS2008与.NET 2.0运行时(SP1);vs2003与.NET 1.1;Mono;get='_blank'>ASP.NET中的中等信任环境。

二.NPOI核心类和方法解析:

    以上是对NPOI的相关背景和使用环境做了一个简单的介绍,接下来我具体的看一下NPOI的一些核心类和方法,由于下载的是DLL文件,还是采用.NET Reflector对DLL文件进行反编译,以此查看源代码。

   如果需要具体的了解NPOI可以直接访问:http://npoi.codeplex.com/SourceControl/latest,提供了NPOI的源码和一些demo,由于本溪介绍的重点是NPOI对Excel的操作,所以下面的类和实例主要是对操作Excel的介绍,如果需要对docx的操作,可以具体查看相应的类demo。

  免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

   1.XSSFWorkbook类CreateSheet():创建表。

public ISheet CreateSheet(string sheetname){  if (sheetname == null)  {    throw new ArgumentException("sheetName must not be null");  }  if (this.ContainsSheet(sheetname, this.sheets.Count))  {    throw new ArgumentException("The workbook already contains a sheet of this name");  }  if (sheetname.Length > 0x1f)  {    sheetname = sheetname.Substring(0, 0x1f);  }  WorkbookUtil.ValidateSheetName(sheetname);  CT_Sheet sheet = this.AddSheet(sheetname);  int index = 1;  foreach (XSSFSheet sheet2 in this.sheets)  {    index = (int) Math.Max((long) (sheet2.sheet.sheetId + 1), (long) index);  }Label_0099:  foreach (XSSFSheet sheet3 in this.sheets)  {    index = (int) Math.Max((long) (sheet3.sheet.sheetId + 1), (long) index);  }  string fileName = XSSFRelation.WORKSHEET.GetFileName(index);  foreach (POIin base.GetRelations())  {    if ((part.GetPackagePart() != null) && fileName.Equals(part.GetPackagePart().PartName.Name))    {      index++;      goto Label_0099;    }  }  XSSFSheet item = (XSSFSheet) base.CreateRelationship(XSSFRelation.WORKSHEET, XSSFFactory.GetInstance(), index);  item.sheet = sheet;  sheet.id = item.GetPackageRelationship().Id;  sheet.sheetId = (uint) index;  if (this.sheets.Count == 0)  {    item.IsSelected = true;  }  this.sheets.Add(item);  return item;}

原标题:免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。