使用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 }