C#使用NPOI导入Excel的方法详解
本文实例讲述了C#使用NPOI导入Excel的方法。分享给大家供大家参考,具体如下:
NPOI是由国人开发的一个进行excel操作的第三方库。百度百科介绍如下:NPOI
本文主要介绍如何使用NPOI将Excel数据读取。
首先引入程序集:
usingSystem.IO; usingSystem.Reflection; usingNPOI.HSSF.UserModel; usingNPOI.SS.UserModel; usingSystem.Web;
然后定位到文件位置:
stringpath="~/上传文件/custompersonsalary/"+id+"/"+id+".xls"; stringfilePath=Server.MapPath(path); FileStreamfs=newFileStream(filePath,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite)//打开.xls文件
接下来,将xls文件中的数据写入workbook中:
HSSFWorkbookwk=newHSSFWorkbook(fs);//把xls文件中的数据写入wk中
wk.NumberOfSheets是xls文件中总共的表的个数。
wk.GetSheetAt(i)是获取第i个表的数据。
通过循环:
for(inti=0;i将每个表的数据单独存放在ISheet对象中:
ISheetsheet=wk.GetSheetAt(i);//读取当前表数据这样某张表的数据就暂存在sheet对象中了。
接下来,我们可以通过sheet.LastRowNum来获取行数,sheet.GetRow(j)来获取第j行数据:for(j=1;j<=sheet.LastRowNum;j++)//LastRowNum是当前表的总行数 { IRowrow=sheet.GetRow(j);//读取当前行数据每一行的数据又存在IRow对象中。
我们可以通过row.LastCellNum来获取列数,row.Cells[i]来获取第i列数据。
row.Cells[2].ToString();这里需要注意一点的就是,如果单元格中数据为公式计算而出的话,row.Cells[i]会返回公式,需要改为:
row.Cells[2].NumericCellValue就可以返回计算结果了。
最后将我在项目中用到的一段导入Excel数据赋予实体的示例如下:
//////导入操作 /// ///@author:刘放 ///@date:2015/10/17 ///主表id /// 如果成功,返回ok,如果失败,返回不满足格式的姓名 publicstringInDB(stringid) { intj=0; StringBuildersbr=newStringBuilder(); stringpath="~/上传文件/custompersonsalary/"+id+"/"+id+".xls"; stringfilePath=Server.MapPath(path); using(FileStreamfs=newFileStream(filePath,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite))//打开123.xls文件 { //定义一个工资详细集合 ListstaffWageList=newList (); try { HSSFWorkbookwk=newHSSFWorkbook(fs);//把xls文件中的数据写入wk中 for(inti=0;i 最后需要注意一点的就是,Excel中即使某些单元格内容为空,但是其依旧占据了一个位置,所以在操作的时候需要格外注意。
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#操作Excel技巧总结》、《C#程序设计之线程使用技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。