C#項目中excel的數據導入功能


C#項目中excel的數據導入功能

實現思路

1.點擊按鈕的時候,將文件上傳並指定上傳路勁

2.文件上傳成功后,這個文件就在服務器中的一個文件里面

3.將上傳的文件當成一個“移動的數據庫”,利用NPOI獲取excel表中的數據

4.通過for循環遍歷表中 每一行的的值 再調用添加的接口將數據添加到數據庫中去

注意:下面的代碼我只展示控制器里的代碼 其他層的代碼就不展示了 

[HttpPost]
       public ActionResult Upload()
       {
           var file = Request.Files[0]; //拿到前端上傳的文件
           var Isxls = Path.GetExtension(file.FileName).ToString().ToLower();
           if (Isxls != ".xls" && Isxls != ".xlsx")  //判斷文件格式
           {
              return Error();
           }
           if (file == null) { return Error("文件無內容,請檢查后重新上傳~"); }
           string userId = OperatorProvider.Instance.Current.UserId; //這里是獲取當前登錄用戶的ID 可以不要 我是用來拼接上傳后文件的名稱
           string virtualPath = Path.Combine("/Content/Uploads/Files", userId + Path.GetExtension(file.FileName));
           string filePath = Request.MapPath(virtualPath);
           if (FileUtil.Exists(filePath))//判斷文件是否存在
           {
               FileUtil.Delete(filePath);
           }
           file.SaveAs(filePath);//這里是拿到上傳后的文件
           NPOI.XSSF.UserModel.XSSFWorkbook workBook = new NPOI.XSSF.UserModel.XSSFWorkbook(new FileStream(Path.GetFullPath(filePath), FileMode.Open));
           NPOI.XSSF.UserModel.XSSFSheet sheet = (NPOI.XSSF.UserModel.XSSFSheet)workBook.GetSheetAt(0);
           int rowCount = sheet.LastRowNum;
           //開始添加
           for (int j = 0; j < rowCount; j++)
           {
               //獲取excel每一行的值
               string Id = Guid.NewGuid().ToString();
               string CreateTime = sheet.GetRow(j + 1).GetCell(0).ToString().Trim().Replace("\n", "");
               string ClientName = sheet.GetRow(j + 1).GetCell(1).ToString().Trim().Replace("\n", "");
               //創建需要導入數據的實體類對象
               SysClient model = new SysClient();
               model.Id = Id;
               model.CreateTime = CreateTime ;
               model.ClientName = ClientName;
               clientLogic.Inserts(model);//調用寫好的添加接口
           }
           return Success("導入成功!");
       }
      
   }

關於導入的功能我這里寫的簡單了些  當然你也可以根據自己的想法去寫 這里我只提供一個思路。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM