NPOI兼容 excel2003,2007版本

根据项目需要,需要对excel进行导入导出,所以选择NPOI,优点在这里就不详细介绍了,下面进入正题。

 1 public int Import(string path)

 2         {

 3              IList<Student> list = new List<Student>();

 4 

 5             try

 6             {

 7                 string strFileName = path;

 8                 using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))

 9                 {

10 

11                     IWorkbook workbook = WorkbookFactory.Create(file);////使用接口,自动识别excel2003/2007格式主要就是这句话

12                     

13                         //获取所有的工作簿

14                         for (int i = 0; i < workbook.NumberOfSheets; i++)

15                         {

16                             //获取所有的工作表

17                             ISheet st = workbook.GetSheetAt(i);

18                             

19                                 //读取每一行

20                                 for (int k = 1; k < st.LastRowNum + 1; k++)

21                                 {

22                                     //获取当前行

23                                     IRow r = st.GetRow(k);

24 

25                                     if (r != null)

26                                     {

27 

28                                         if (r.GetCell(0) != null)

29                                         {

30                                             //if (r.GetCell(0).ToString().Length == 8)//验证考号是不是9位

31                                             //{

32                                             MarkingSchool.Model.Student stu = new MarkingSchool.Model.Student();

33                                             if (r.GetCell(0) != null)

34                                             {

35                                                 stu.studentCode = r.GetCell(0).ToString();

36                                             }

37                                             if (r.GetCell(1) != null)

38                                             {

39                                                 stu.studentName = r.GetCell(1).ToString();

40 

41                                             }

42                                             if (r.GetCell(2) != null) stu.schoolCode = r.GetCell(2).ToString();

43                                             if (r.GetCell(3) != null) stu.gradeCode = r.GetCell(3).ToString();

44                                             if (r.GetCell(4) != null) stu.classesCode = r.GetCell(4).ToString();

45 

46                                             if (r.GetCell(5) != null) stu.period = r.GetCell(5).ToString();

47                                             if (r.GetCell(6) != null) stu.nationChineseIdentifyCode = r.GetCell(6).ToString();

48                                             if (r.GetCell(7) != null) stu.scienceOrArtIdentifyCode = r.GetCell(7).ToString();

49 

50                                             list.Add(stu);

51                                             //}

52                                         }

53 

54                                     }

55                                 }

56 

57                             

58                         }

59                     

60                 }
View Code

以上是同excel导入到list,Studnet为学生实体类 ,然后通过通过Student在导入数据库,

也可以通过Bulk Insert批量插入 。

Bulk Insert 简介:http://blog.chinaunix.net/uid-12427199-id-3413752.html

npoi官方最新下载地址:http://npoi.codeplex.com

Npoi 学习系列教程推荐:http://tonyqus.sinaapp.com

 

你可能感兴趣的:(excel2003)