使用NPOI将Excel表导入到数据库中


 1 public string ExcelFile()
 2 {
   //指定文件路径,
3 string fileName=@"d:\Stu.xls";
   //创建一个文件流,并指定其中属性
4 using(FileStream fs = new FileStream(fileName,FileMode.Open,FileAccess.Read)) 5  {
    //创建一个Excel对象,并指明文件流
6   HSSFWorkbook book = new HSSFWorkbook(fs);
    //创建一个sheet对象,并指明第几个sheet,
7   ISheet sheet = book.GetSheetAt(0); 8   Student model = new Student(); 9   for(int i=sheet.FirstRowNum+1;i<sheet.LastRowNum;i++) 10   {
      //创建一个row对象,并获取该sheet中的第几行
      IRow row = sheet.GetRow(i);
      //将每行从第0列开始赋值给对应的属性,在此需要添加一个辅助方法,GetCellValue
11     model.StudentName = Convert.ToString(GetCellValue(row.GetCell(0))); 12     model.Sex = Convert.ToString(GetCellValue(row.GetCell(1)))=="男"?0:1; 13     model.Birthday = Convert.ToDateTime(GetCellValue(row.GetCell(2)).ToString());
      //将每行的记录的传后,添加到数据库中,
14     bll.Create(model); 15    } 16  }
    return "ok";
17 }
添加一个GetCellValue方法,用于获取Excel单元格值
 1 private object GetCellValue(ICell cell)
 2         {
 3             if (cell == null) return null;
 4             switch (cell.CellType)
 5             {
 6                 case CellType.Blank:
 7                     return null;
 8                 case CellType.Boolean:
 9                     return cell.BooleanCellValue;
10                 case CellType.Error:
11                     return cell.ErrorCellValue;
12                 case CellType.Numeric:
13                     return cell.NumericCellValue;
14                 case CellType.String:
15                     return cell.StringCellValue;
16                 case CellType.Formula:
17                 default:
18                     return "=" + cell.CellFormula;
19             }
20 
21         }

 

 

 

 

posted @ 2020-03-11 16:25  默緣心  阅读(703)  评论(1编辑  收藏  举报