当前位置: 首页 > 科技观察

NPOI操作ExcelNPOI基础

时间:2023-03-14 01:21:15 科技观察

C#读取Excel的方法有很多种。由于最近工作需要,需要解析的Excel中有合并单元格、背景色等特殊要求,于是在网上查了一些关于读Excel的内容。方法的优缺点,我觉得NPOI可以满足我的需求,所以搜索了一些资料,做了一些测试。下面部分内容来自别人的博客,都有出处。我只是想记录一些我认为对我有用的,望见谅。先了解一下NPOI的优缺点:优点:数据读取速度快,读取方式灵活,合并包含多个工作表的Excel单元格,设置单元格字段,颜色,设置单元格为下拉框,限制输入值,设置单元格为只输入数据等(可以解决几乎所有的Excel问题)。缺点:无法操作打开的Excel,需要导入多个dll文件(NPOI、NPOI.HPSF、NPOI.HSSF、NPOI.HSSF.UserModel、NPOI.POIFS、NPOI.Util)下载地址:http://npoi.codeplex。com1.常用的基本方法:创建工作簿IWorkbookworkbook=newXSSFWorkbook();按指定名称创建工作表workbook.CreateSheet("SheetName");删除工作表工作簿。RemoveSheetAt(SheetIndex);通过名称sheet=workbook.GetSheet("SheetName")获取Sheet对象ISheet;根据索引获取Sheet对象ISheetsheet=workbook.GetSheetAt(SheetIndex);获取某个ISheet的所有IRows,通常可以使用ISheet.GetRowEnumerator()获取特定行,可以直接使用ISheet.GetRow(rowIndex)工作表中有数据的第一行的行号ISheet.FirstRowNum工作表中有数据的最后一行的行号ISheet.LastRowNum一行中有数据的第一行的列号IRow.FirstCellNum一行中最后一个数据列的列号IRow.LastCellNum获取所有合并的单元格索引sheetISheet.NumMergedRegions获取合并单元格地址(i为合并单元格索引)ISheet.GetMergedRegion(i)获取数据类型CellRangeAddress,包括起始行号和列号获取单元格值Row.GetCell(j).StringCellValue.Trim()公式单元格如果是数字:Row.GetCell(j).NumericCellValue.ToString()2,在NPOI.DLL中包含模块NPOI.Util基础辅助库NPOI.POIFSOLE2格式读写库,主要负责处理DocumentInformationNPOI.DDFMicrosoft绘图格式读写库NPOI.SSExcel2003和Excel2007操作库共享的接口库和常用模块的实现,如公式计算库NPOI.HPSFOLE2汇总信息和文档汇总信息属性读写库NPOI.HSSFExcelBIFF格式读取-write库,是用户使用最多的命名空间3.NPOI.OOXML.DLL包含的模块(主要是2007版本的操作方法)NPOI.XSSFExcel2007操作库,大部分对象都实现了NPOI.SSNPOI的接口.XWPFWord2007运算库4、EXCEL单元格值基本类型Unknown=-1,//unknownNumeric=0,//numericString=1,//textFormula=2,//formulaBlank=3,//blankBoolean=4,//BooleanError=5,//错误参考:http://www.cnblogs.com/csqb-511612371/p/4878059.htmlhttps://www.cnblogs.com/zqyw/category/1070314。html本文转载自微信公众号《CSharp编程百科全书》,您可以通过以下二维码关注转载文章,请联系CSharp编程百科全书公众号。