C# NPOI 上傳Excel檔案,並新增至資料庫

Select *
Program
Published in
May 23, 2021

ASP.NET MVC專案使用NPOI套件。
前端上傳Excel檔案,後端接收檔案(HttpPostedFileBase)後使用NPOI解析Excel至DataTable,並將資料新增至資料庫中。

安裝NPOI

NuGet下載NPOI套件。

開發步驟

  1. 新增匯入檔案的Controller。
  2. 新增匯入檔案的View。
  3. 新增ActionResult接收回傳資料。
  4. 解析資料並新增至資料庫。
  5. 執行畫面。

新增匯入檔案的Controller

在Controllers資料夾/HomeController.cs中,新增ActionResult Import()。

新增匯入檔案的View

在資料夾Views/Home→右鍵→加入→檢視,命名Import。
調整Import.cshtml內程式碼。

@ViewBag.Message用來回傳匯入成功或失敗。
<form>method="post",設定表單為post。
<Input>選擇上傳檔案,name必須給值,後端才能接收資料。
<button>submit至後端。

新增ActionResult接收回傳資料

在Controllers資料夾/HomeController.cs中,新增[HttpPost] ActionResult Import()來接收post資料。

HttpPostedFileBase用來接收前端post的file資料,參數名稱必須與前端name一致。

解析資料並新增至資料庫

要匯入的Excel:

HomeController.cs引用NPOI。
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

[HttpPost] ActionResult Import()內加入程式。

.

加入OrderList的Model。
在Models資料夾→右鍵→加入→類別,命名為OrderList。

.

加入DBConnect,接收OrderList並新增到資料庫。

執行畫面

點選上方匯入檔案。

進入匯入檔案頁面

選擇檔案,按下匯入。

匯入成功。

資料表OrderList資料。

--

--