NPOI操作EXCEL----------NPOI基础01

摘要:
XSSF支持07及以上的命名空间,HSSF支持03。XSSF中的XSSFWorkbook、XSSFSheet、XSSFRow和XSSFCell分别对应EXCEL中的工作簿、工作表、行和列。今天,我再次回顾了NPOI,并编写了一些基本操作代码和上传设计。博主的基本思想是为每个excel模板创建一个相应的XML配置文件,其中包含一个规则集。然后,所有模板都通过一个方法上传到Excel,以解析数据和规则集,最后反映到DTO,然后根据业务映射到不同的实体,调用不同的ADD服务进行仓储

来源地址:http://www.cnblogs.com/csqb-511612371/p/4878059.html

先来介绍一下NPOI基本的东西:

1.下载地址:http://npoi.codeplex.com    (最新版已经2.2.0.0了)

2.包里面的DLL文件:

NPOI.dll

OOXML.dll

OpenXml4Net.dll

OpenXmlFormats.dll

ICSharpCode.SharpZipLib.dll

3.NPOI 2.0以后的版本都支持OOXML(EXCEL2007及以上版本)。带XSSF的命名空间支持07及以上,HSSF支持03版本。

XSSF中XSSFWorkbook,XSSFSheet,XSSFRow,XSSFCell分别对应EXCEL中工作簿,工作表,行,列。

HSSF中同样有HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell

它们继承于同一个接口:IWorkbook(命名空间:using NPOI.SS.UserModel;)

可以用如下代码做版本判断(暂时只考虑.xls与.xlsx文件,博主没用.csv)

复制代码
IWorkbook workbook = null;
if(System.IO.Path.GetExtension(filePath)=="xls")
{
    workbook = new HSSFWorkbook(ExcelFileStream);
}
else if(System.IO.Path.GetExtension(filePath)=="xlsx")
{
    workbook = new XSSFWorkbook(ExcelFileStream);
}
else
{
    throw new exception("文件类型错误");
}
复制代码

4.常用的基本方法:

创建工作簿                                                 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()

5.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格式读写库,这是用户用的最多的命名空间

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

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

7.EXCEL单元格值基本类型

Unknown = -1,  // 未知
Numeric = 0,  // 数值型
String = 1,  // 文本型
Formula = 2,  // 公式型
Blank = 3,  // 空白
Boolean = 4,  // 布尔型
Error = 5,  // 错误

感觉基本常用的就是这些,需要用到其它接口可以直接查API。

 

今天也是把NPOI再复习一遍,写了一些基本的操作代码和上传设计。明天上传方法写好再继续贴出来分享给大家....

博主的基本思想是,对每一个excel模板都做一个对应的XML配置文件,里面是规则集。然后所有模板的excel上传均通过一个方法,解析数据与规则集,最后反射到DTO,再根据业务映射到不同实体,调用不同ADD服务入库

 

 

 



免责声明:文章转载自《NPOI操作EXCEL----------NPOI基础01》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#中yield return用法分析net WebApi中使用swagger下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NPOI随笔——图片在单元格等比缩放且居中显示

  NPOI导出的图片默认是在单元格左上方,这使得图片在单元格显示得很难看。居中,且等比缩放,才是图片在单元格上的完美展示。         /// <summary> /// 图片在单元格等比缩放居中显示 /// </summary> /// <param na...

C# 生成word文档(NPOI)

using NPOI.XWPF.UserModel XWPFDocument doc = new XWPFDocument(); //创建新的word文档 XWPFParagraph p1 = doc.CreateParagraph(); //向新文档中添加段落 p1.SetAlignment(ParagraphAlignment.CENTER); //段...

C# Excel导入导出

目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图、NOPI以及C#代码 3. Excel导出:介绍C#如何调用NPOI进行Excel导出,包含:流程图、NOPI以、C#代码以及代码分析 4. 源码下载:展示运行图及源码下载  1. 介绍 1.1 第三方类库:NPOI...

http请求post,返回excel文件,并接收

1.post的方法里要加responseType: 'arraybuffer'参数,不然下载的excel会乱码 2.使用{type: "application/vnd.ms-excel"}的写法,可以保存为xls格式的excel文件(兼容老版本)。而使用“application/vnd.openxmlformats-officedocument.sprea...

golang 写数据到excel文件 清明

package main import ( "encoding/csv" "fmt" "math/rand" "os" "strconv" "time" ) type person struct { JOB_NUMBER string NAME string DEP_CODE string DEP_NAME st...

java 读CSV 和 Excel

1、csv和excel读写对比  开发中经常遇到数据导入和导出功能,csv 和 excel是最常见的数据格式,本文比较了下csv和excel读写相同数据的效率:  测试数据格式一 用上面模板数据生成的测试: 耗时时间统计:  测试数据格式二 生成数据: 耗时统计: 相同格式相同行数对比: csv文件比excel文件稍大 csv读取/写入比ex...