基于NPOI数据导出方法的研究与实现

2017-11-15 19:36连俊光
电脑知识与技术 2017年28期

连俊光

摘要:在软件项目中,笔者常常用到将查询出来的数据,导出到Excel表格中去的功能,或者将Excel表格中的数据导入到内存中去。该文以使用NPOI导出到Excel为例,对NPOI中的workbook,sheet,row,cell等几个名词及具体对应的操作类,类的方法,进行了详细的讲解、使用。

关键词:NPOI;Excel;数据导入导出

中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2017)28-0008-02

1 概述

在日常的工作中,我们习惯通过Excel进行数据的统计、整理,所以在软件开发中,对从数据库中查询的数据导出到Excel是一个必不可少的功能。

2 NPOI的优势

目前Excel导入导出有多种方法,而今天我们要研究的是通过一个叫做NPOI的组件,进行数据的导入导出。NPOI具有如下优势:

1) 该插件可以免费使用。

2) 许多Excel的特点都可以使用,比如说表格的样式等。

3) 有专业的团队,提供优秀的技术支持。

4) xls, xlsx, docx等格式都可以操作。

5) 面向接口编程,可以在命名空间中查看接口定义。

6) 既能完成文件的导出,也能将Excel导入到系统中。

7) 支持较早的.net Framework版本

8) 有大量的成功案例

9) 较多的技术学习资料。

10) 你不需要在服务器上安装微软的Office,可以避免版权问题。

11) 使用起来比Office PIA的API更加方便,更人性化。

12) 你不用去花大力气维护NPOI,NPOI Team会不断更新、改善NPOI,绝对省成本。

3 NPOI操作类说明

3.1 工作本对象

HSSFWorkbook表示工作本,它包含几个重要的函数。函数一是CreateSheet,函数二GetSheetAt,函数三CreateCellStyle,函数四CreateFont,函数五Write(stream),以及HSSFWorkbook本身的无参构造函数

1) 新建一个工作本使用HSSFWorkbook的无参构造函数。

2) 指定sheet对象的创建用函数一,括号内参数为对象索引。

3) 想要得到指定索引的sheet对象,用函數二,括号内参数为对象的索引。

4) 函数四用来新建一个样式对象,该样式对象用于单元格。

5) 新建字体对象实用函数五。

6) 函数六是将workbook写到流中。

3.2 工作表对象

HSSFSheet表示工作表对象,它有三个函数。函数一CreateRow、函数二GetRow、函数三AddMergeRegion、函数四SetColumnWidth

1) 新建索引行用第一个函数。

2) 获得指定索引指向的行使用第二个函数。

3) 第三个函数可以设置单元格的区域合并。

4) 函数四可是设定列的宽度。

3.3 行对象

HSSFRow表示行对象,它有两个函数和一个属性。函数一CreateCell、函数二GetCell,一个属性为HeightlnPoints。

1) 新建索引行使用函数一。

2) 获得指定单元格使用函数二。

3) 设定行的高度使用属性。

3.4 单元格对象

HSSFCell是单元格对象,它有一个函数和两个属性。函数一为SetCellValue、属性一***CellValue、属性二CellStyle。

1) 用函数一为单元格赋值。

2) 属性一***可以得到单元格的指定类型的内容。

3) 设定单元格的样式使用属性二。

3.5 单元格样式对象

HSSFCellStyle是单元格样式对象,函数一SetFont和属性一Alignment。

1) 字体样式使用函数一设定

2) 属性一有三个参数,数字1表示水平居左,数字2表示水平居中,数字3表表示水平居右。

3.6 字体对象

HSSFFont是字体对象。它有两个属性。属性一FontHeightlnPoints、属性二Boldweight。

1) 属性一可以用来设置字体大小。

2) 属性二可以改变字体的粗细。

4 demo操作演示

在VS中新建项目,选择Visual C#——Windows——Windows窗体应用程序,命名为Test,在Test中,添加——Windows窗体,命名为NPOITest,在NPOI官网(http://npoi.codeplex.com/)下载编译过后的NPOI类库,打开,将文件夹内的全部内容复制,将复制的内容粘贴lib文件夹下(若无此文件夹,找到项目所在位置,在项目文件夹内新建),如下图:

Test项目中添加引用,如下图:

在NPOITest窗体中,添加一个按钮和一个DataGridView控件。效果如下:

绑定数据源,此处为做演示,我用了某个管理系统的管理员列表的数据库数据(大家做测试可以使用自己的数据库),当窗加载时自动加载数据,如图4。

5 导出按钮后台代码截图

6 效果图

效果图如图5所示。

7 结束语

实现了从软件系统中将数据库中查询的数据导出到Excel中,可在实际应用中参考此方法实现数据导出,具有实用价值。

参考文献:

[1] 魏文胜.Excel与SQLServer数据的相互转换之方法[J].电脑知识与技术,2007(10):892.

[2] 张丽英.基于.NET的Excel数据批量导入SQL Server的设计与实现[J].南通纺织职业技术学院学报, 2012, 12(1):7-10.

[3] 游向峰.基于ASP.NET的SQL与Excel数据互导的研究与实现[J].电脑知识与技术, 2010(11):8953.endprint