NPOI操作Excel之NPOI基础

开发 前端
用C#读取Excel的方法有很多中,由于近期工作需要,需要解析的Excel含有合并单元格以及背景色等特殊要求,故在网上查了一些关于读Excel的方法的优缺点,觉得NPOI能满足我的需要,所以搜索了一些资料做了一些测试,下面有些内容有些是来源于别人的博客,都备有出处,只是想把一些觉得对自己有用的记录一下,望见谅。

[[379896]]

用C#读取Excel的方法有很多中,由于近期工作需要,需要解析的Excel含有合并单元格以及背景色等特殊要求,故在网上查了一些关于读Excel的方法的优缺点,觉得NPOI能满足我的需要,所以搜索了一些资料做了一些测试,下面有些内容有些是来源于别人的博客,都备有出处,只是想把一些觉得对自己有用的记录一下,望见谅。

我们先说了解一下NPOI的优缺点:

优点:读取数据快,读取方式灵活,包含多个sheet的Excel单元格合并设置单元格字段、颜色、设置单元格为下拉框,并限制输入值,设置单元格只能输入数据等(能解决几乎所有的Excel问题)。

缺点:不能对已经打开的Excel进行操作,需要导入多个dll文件(NPOI、NPOI.HPSF、NPOI.HSSF、NPOI.HSSF.UserModel、NPOI.POIFS、NPOI.Util)

下载地址:http://npoi.codeplex.com

1、常用的基本方法:

创建工作簿 IWorkbook workbook = new XSSFWorkbook();

按指定名称创建Sheet workbook.CreateSheet("SheetName");

移出Sheet workbook.RemoveSheetAt(SheetIndex);

按名称获得Sheet对象 ISheet sheet = workbook.GetSheet("SheetName ");

根据索引获得Sheet对象 ISheet sheet = workbook.GetSheetAt(SheetIndex);

获得某一个ISheet的所有IRow,通常可以用 ISheet.GetRowEnumerator()

获得某一特定行,可以直接用 ISheet.GetRow(rowIndex)

工作表中第一个有数据行的行号 ISheet.FirstRowNum

工作表中最后一个有数据行的行号 ISheet.LastRowNum

一行中第一个有数据列的列号 IRow.FirstCellNum

一行中最后一个有数据列的列号 IRow.LastCellNum

获取sheet所有合并单元格索引 ISheet.NumMergedRegions

获取某合并单元格的地址(i是合并单元格索引) ISheet.GetMergedRegion(i)

获得数据类型CellRangeAddress,含起始行号和列号

获取某单元格值 Row.GetCell(j).StringCellValue.Trim()

公式单元格如果是数字可以: Row.GetCell(j).NumericCellValue.ToString()

2、NPOI.DLL中包含的模块

NPOI.Util 基础辅助库

NPOI.POIFS OLE2格式读写库,主要负责处理DocumentInformation

NPOI.DDF Microsoft Drawing格式读写库

NPOI.SS Excel 2003和Excel 2007操作库共用的接口库以及公用模块实现,如公式计算库

NPOI.HPSF OLE2的Summary Information和Document Summary Information属性读写库

NPOI.HSSF Excel BIFF格式读写库,这是用户用的最多的命名空间

3、NPOI.OOXML.DLL中包含的模块(主要是2007版本操作方法)

NPOI.XSSF Excel 2007操作库,大部分对象都实现了NPOI.SS的接口

NPOI.XWPF Word 2007操作库

4、EXCEL单元格值基本类型

Unknown = -1, // 未知

Numeric = 0, // 数值型

String = 1, // 文本型

Formula = 2, // 公式型

Blank = 3, // 空白

Boolean = 4, // 布尔型

Error = 5, // 错误

参考:http://www.cnblogs.com/csqb-511612371/p/4878059.html

https://www.cnblogs.com/zqyw/category/1070314.html

本文转载自微信公众号「CSharp编程大全」,可以通过以下二维码关注。转载本文请联系CSharp编程大全公众号。

 

责任编辑:武晓燕 来源: CSharp编程大全
相关推荐

2021-02-04 07:22:07

NPOI操作Excel

2012-08-03 10:20:06

ASP.NET

2021-02-03 10:31:10

NPOIExcel样式

2021-12-01 07:19:44

C# Npoi Excel

2016-12-06 10:23:24

.NETCore首例Office

2023-11-02 08:01:50

NPOI开源

2009-08-18 16:14:05

C# 操作Excel

2009-08-18 16:20:09

C# 操作Excel

2009-08-18 15:49:19

C# 操作Excel

2012-07-31 10:37:31

Lucene.net

2011-06-23 11:16:39

Qt Excel

2009-08-18 16:04:12

C# 操作Excel

2013-02-22 14:45:01

.NETC#Xcode

2009-08-18 14:36:36

C# 操作Excel

2009-08-18 14:25:05

C# 操作Excel

2009-08-18 14:46:16

C# 操作Excel

2021-03-12 18:56:26

大数据数据开发SQL

2011-07-15 09:20:52

C语言文件操作

2009-08-25 16:49:28

.NET Excel

2011-07-13 14:02:42

OracleExcel
点赞
收藏

51CTO技术栈公众号