使用NPOI控制excel

来源:互联网 发布:matlab二维数组 编辑:程序博客网 时间:2024/04/30 20:33
关于NPOI


NPOI是POI项目的.NET版本,是由@Tony Qu(http://tonyqus.cnblogs.com/)等大侠基于POI开发的,可以从http://npoi.codeplex.com/下载到它的最新版本。它不使用Office COM组件(Microsoft.Office.Interop.XXX.dll),不需要安装Microsoft Office,支持对Office 97-2003的文件格式,功能比较强大。更详细的说明请看作者的博客或官方网站。


它的以下一些特性让我相当喜欢:


支持对标准的Excel读写
支持对流(Stream)的读写 (而Jet OLEDB和Office COM都只能针对文件)
支持大部分Office COM组件的常用功能
性能优异 (相对于前面的方法)
使用简单,易上手


使用NPOI


本文使用的是它当前的最新版本1.2.4,此版本的程序集缩减至2个:NPOI.dll、Ionic.Zip.dll,直接引用到项目中即可。


对于我们开发者使用的对象主要位于NPOI.HSSF.UserModel空间下,主要有HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,对应的接口为位于NPOI.SS.UserModel空间下的IWorkbook、ISheet、IRow、ICell,分别对应Excel文件、工作表、行、列。


 
简单演示一下创建一个Workbook对象,添加一个工作表,在工作表中添加一行一列:using NPOI.HSSF.UserModel;using NPOI.SS.UserModel; public class NPOIWrite{    void CreateSheet()    {        IWorkbook workbook = new HSSFWorkbook();//创建Workbook对象        ISheet sheet = workbook.CreateSheet("Sheet1");//创建工作表        IRow row = sheet.CreateRow(0);//在工作表中添加一行        ICell cell = row.CreateCell(0);//在行中添加一列        cell.SetCellValue("test");//设置列的内容    }}

相应的读取代码:

using System.IO;using NPOI.HSSF.UserModel;using NPOI.SS.UserModel; public class NPOIRead{    void GetSheet(Stream stream)    {        IWorkbook workbook = new HSSFWorkbook(stream);//从流内容创建Workbook对象        ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作表        IRow row = sheet.GetRow(0);//获取工作表第一行        ICell cell = row.GetCell(0);//获取行的第一列        string value = cell.ToString();//获取列的值    }}



0 0
原创粉丝点击