隐藏

C#中NPOI对Excel的读取

发布:2023/3/24 22:11:29作者:管理员 来源:本站 浏览次数:680

   public ActionResult Index()

           {

               //打开excel所在的位置

               FileStream stream = new FileStream(Server.MapPath("~/Content/excel/S3抽奖名单.xlsx"), FileMode.Open);

               //获取excel

               XSSFWorkbook workbook = new XSSFWorkbook(stream);

               //获取excel中的表

               XSSFSheet sheet = workbook.GetSheet("PHP46") as XSSFSheet;

               LotteryDBEntities lotteryDB = new LotteryDBEntities();


               //遍历行

               List<stuInfo> stulist = new List<stuInfo>();

               for (int i = 4; i < sheet.LastRowNum; i++)

               {

                   XSSFRow row = sheet.GetRow(i) as XSSFRow;

                   var name = row.GetCell(3);

                   if (name == null)

                   {

                       break;

                   }

                   string stuName = name.ToString();

                   string clas = row.GetCell(8).StringCellValue;

                   stuInfo stu = new stuInfo();

                   stu.stuName = stuName;

                   stu.stuClass = clas;

                   stulist.Add(stu);

               }

               var info = lotteryDB.stuInfo.ToList();

               //批量添加

               lotteryDB.BulkInsert(stulist);

               lotteryDB.BulkSaveChanges();

               return View();

           }

拓展:


       这里读取数据之后向数据库批量添加数据时,使用了BulkInsert,这是一个拓展方法,添加数据时比EF自带的方法速度快一点,使用时,搜索 Z.EntityFramework.Extensions。