IronXL 操作指南 ASP.NET MVC 讀取 Excel 檔案 Read Excel Files in ASP.NET MVC Using C# with IronXL Curtis Chau 更新:2026年1月31日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronXL讓ASP.NET MVC 開發人員能夠直接在 C# 中讀取 Excel 文件,而無需依賴 Microsoft Office,只需幾行程式碼即可將 Excel 資料轉換為 System.Data.DataTable,以便在 Web 視圖中輕鬆顯示。 快速入門:在 MVC 中載入 Excel 表格並將其轉換為 DataTable@@--AH2EG--@@ 本範例展示如何在幾秒鐘內快速上手:載入一個 Excel 工作簿,選擇它的第一個工作表,然後使用IronXL將其轉換為 System.Data.DataTable — 無需互通,輕鬆便捷。 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXL.Excel PM > Install-Package IronXL.Excel 複製並運行這段程式碼。 var dataTable = IronXl.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true); 部署到您的生產環境進行測試 今天就在您的專案中開始使用免費試用IronXL Free 30 Day Trial ### 最簡工作流程(5個步驟) 安裝 C# 函式庫以在ASP.NET中讀取 Excel 文件 載入並存取 Excel 文件中的目標工作表 存取`ToDataTable`方法並將其傳回`View` 使用循環在網頁上顯示 Excel 數據 遍歷所有資料並建立 HTML 表格 如何建立一個用於讀取 Excel 資料的ASP.NET專案? 為什麼 Visual Studio 2022 最適合這項工作? 使用 Visual Studio 2022 建立一個新的ASP.NET專案。 Visual Studio 2022 為.NET 6+ 框架提供了出色的支持,改進了 IronXL 方法的 IntelliSense,並且在處理大型 Excel 文件時性能更佳。 IDE 的NuGet整合使得安裝 IronXL 變得特別簡單。 我應該選擇哪個項目模板? 若要在ASP.NET中讀取 Excel 文件,請選擇"ASP.NET Core Web 應用程式(模型-視圖-控制器)"範本。 此範本提供了一個清晰的 MVC 結構,將資料處理(Excel 讀取)與展示邏輯分開。 MVC 模式與 IronXL 的 DataTable 轉換完美配合,可讓您在控制器中載入電子表格並在視圖中無縫顯示它們。 推薦使用哪個.NET版本? IronXL 適用於.NET Framework 4.6.2+ 和.NET Core 3.1+。 對於新的ASP.NET MVC 項目,請使用.NET 6.0 或更高版本以獲得最佳效能和安全性。 這些版本在處理大型 Excel 檔案時提供了改進的記憶體管理,並更好地支援非同步/等待以轉換電子表格檔案類型。 如何安裝IronXL庫? 安裝需要哪些條件? 哪種安裝方法最快? 建立新專案後,安裝 IronXL 庫。 請依照以下步驟安裝 IronXL。 開啟NuGet套件管理器控制台並執行以下命令: Install-Package IronXL.Excel 如何驗證安裝是否成功? 若要驗證 IronXL 是否已正確安裝,請在解決方案資源管理器中檢查專案的依賴項。 您應該可以在"依賴項 > 軟體包"下看到"IronXL"。 此外,嘗試在控制器檔案的頂部新增 using IronXL; - IntelliSense 應該會立即識別命名空間。 如需解決安裝問題,請造訪許可指南。 如何在控制器中讀取Excel檔案? 控制器操作中應該寫什麼程式碼? 開啟ASP.NET專案中的預設控制器(例如,HomeController.cs),並將 Index 方法替換為下列程式碼: using IronXL; using System.Data; public ActionResult Index() { // Load the Excel workbook from a specified path. WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx"); // Access the first worksheet from the workbook. WorkSheet workSheet = workBook.WorkSheets.First(); // Convert the worksheet data to a DataTable object. // The 'true' parameter uses the first row as column headers var dataTable = workSheet.ToDataTable(true); // Send the DataTable to the view for rendering. return View(dataTable); } using IronXL; using System.Data; public ActionResult Index() { // Load the Excel workbook from a specified path. WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx"); // Access the first worksheet from the workbook. WorkSheet workSheet = workBook.WorkSheets.First(); // Convert the worksheet data to a DataTable object. // The 'true' parameter uses the first row as column headers var dataTable = workSheet.ToDataTable(true); // Send the DataTable to the view for rendering. return View(dataTable); } $vbLabelText $csharpLabel 為什麼使用資料表而不是其他格式? 在 Index 操作方法中,使用 IronXL 的 Load 方法載入 Excel 檔案。 Excel 檔案的路徑(包括檔案名稱)會作為參數傳遞給方法呼叫。 接下來,選擇第一個 Excel 工作表作為工作表,並將其中包含的資料載入到 DataTable 物件中。 最後,將 DataTable 傳送到前端。 DataTable 非常適合ASP.NET MVC,因為它與Razor視圖無縫集成,並提供了遍歷行和列的內建支援。 與自訂物件不同,DataTable 不需要模型映射,並且可以自動處理混合資料類型。 您也可以在需要時將 DataSet 和 DataTable 匯出回 Excel。 如果檔案遺失,應該如何處理錯誤? 強大的錯誤處理機制可確保您的應用程式在 Excel 檔案遺失或損壞時不會崩潰。 以下是改進後的版本,加入了正確的異常處理: public ActionResult Index() { try { string filePath = @"C:\Files\Customer Data.xlsx"; // Check if file exists before attempting to load if (!System.IO.File.Exists(filePath)) { ViewBag.Error = "Excel file not found at specified location."; return View(new DataTable()); } // Load workbook with error handling WorkBook workBook = WorkBook.Load(filePath); // Verify worksheet exists if (workBook.WorkSheets.Count == 0) { ViewBag.Error = "No worksheets found in the Excel file."; return View(new DataTable()); } WorkSheet workSheet = workBook.WorkSheets.First(); var dataTable = workSheet.ToDataTable(true); return View(dataTable); } catch (Exception ex) { // Log the exception (consider using a logging framework) ViewBag.Error = $"Error reading Excel file: {ex.Message}"; return View(new DataTable()); } } public ActionResult Index() { try { string filePath = @"C:\Files\Customer Data.xlsx"; // Check if file exists before attempting to load if (!System.IO.File.Exists(filePath)) { ViewBag.Error = "Excel file not found at specified location."; return View(new DataTable()); } // Load workbook with error handling WorkBook workBook = WorkBook.Load(filePath); // Verify worksheet exists if (workBook.WorkSheets.Count == 0) { ViewBag.Error = "No worksheets found in the Excel file."; return View(new DataTable()); } WorkSheet workSheet = workBook.WorkSheets.First(); var dataTable = workSheet.ToDataTable(true); return View(dataTable); } catch (Exception ex) { // Log the exception (consider using a logging framework) ViewBag.Error = $"Error reading Excel file: {ex.Message}"; return View(new DataTable()); } } $vbLabelText $csharpLabel 如何選擇不同的工作紙? IronXL 提供了多種選擇和處理特定工作表的方法。 您可以按索引、名稱存取工作表,也可以遍歷所有可用工作表: // Method 1: Select by worksheet name WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data"); // Method 2: Select by index (zero-based) WorkSheet secondSheet = workBook.WorkSheets[1]; // Method 3: Select the default/active worksheet WorkSheet defaultSheet = workBook.DefaultWorkSheet; // Method 4: Iterate through all worksheets foreach (WorkSheet sheet in workBook.WorkSheets) { string sheetName = sheet.Name; // Process each worksheet } // Method 1: Select by worksheet name WorkSheet namedSheet = workBook.GetWorkSheet("Sales Data"); // Method 2: Select by index (zero-based) WorkSheet secondSheet = workBook.WorkSheets[1]; // Method 3: Select the default/active worksheet WorkSheet defaultSheet = workBook.DefaultWorkSheet; // Method 4: Iterate through all worksheets foreach (WorkSheet sheet in workBook.WorkSheets) { string sheetName = sheet.Name; // Process each worksheet } $vbLabelText $csharpLabel 如何在網頁上顯示Excel資料? 需要哪些視圖程式碼? 下一個範例展示如何在網頁瀏覽器中顯示上一個範例中傳回的 DataTable。 本範例中使用的 Excel 工作文件如下所示: *Excel 檔案* 開啟 index.cshtml(首頁),並將程式碼替換為以下 HTML 程式碼: @{ ViewData["Title"] = "Home Page"; } @using System.Data @model DataTable <div class="text-center"> <h1 class="display-4">Welcome to IronXL Read Excel MVC</h1> </div> @* Check for errors first *@ @if (ViewBag.Error != null) { <div class="alert alert-danger"> @ViewBag.Error </div> } @* Display table only if data exists *@ @if (Model != null && Model.Rows.Count > 0) { <table class="table table-dark"> <tbody> @foreach (DataRow row in Model.Rows) { <tr> @for (int i = 0; i < Model.Columns.Count; i++) { <td>@row[i]</td> } </tr> } </tbody> </table> } else { <p>No data to display.</p> } @{ ViewData["Title"] = "Home Page"; } @using System.Data @model DataTable <div class="text-center"> <h1 class="display-4">Welcome to IronXL Read Excel MVC</h1> </div> @* Check for errors first *@ @if (ViewBag.Error != null) { <div class="alert alert-danger"> @ViewBag.Error </div> } @* Display table only if data exists *@ @if (Model != null && Model.Rows.Count > 0) { <table class="table table-dark"> <tbody> @foreach (DataRow row in Model.Rows) { <tr> @for (int i = 0; i < Model.Columns.Count; i++) { <td>@row[i]</td> } </tr> } </tbody> </table> } else { <p>No data to display.</p> } $vbLabelText $csharpLabel 為什麼要使用 Bootstrap 進行表格樣式設計? 上面的程式碼使用從 Index 方法傳回的 DataTable 作為模型。 使用 @for 循環將表格中的每一行列印到網頁上,包括 Bootstrap 格式進行裝飾。 Bootstrap 提供響應式表格設計,可自動調整以適應不同的螢幕尺寸——這對現代 Web 應用程式至關重要。 table-dark 類別創建了一個美觀且易於閱讀的深色主題表格。 對於更高級的 Excel 格式設置,例如單元格邊框和對齊方式或背景圖案和顏色,IronXL 提供了直接存取結構化資料的其他方法。 最終輸出結果是什麼樣子的? 專案運行結果如下所示: *Bootstrap 表格* 如何為表格新增表頭? 若要顯示 Excel 檔案中的列標題,請修改檢視程式碼以包含表格標題部分。 當呼叫 ToDataTable(true) 時,IronXL 會自動使用第一行作為列名: @if (Model != null && Model.Rows.Count > 0) { <table class="table table-dark"> <thead> <tr> @foreach (DataColumn column in Model.Columns) { <th>@column.ColumnName</th> } </tr> </thead> <tbody> @foreach (DataRow row in Model.Rows) { <tr> @for (int i = 0; i < Model.Columns.Count; i++) { <td>@row[i]</td> } </tr> } </tbody> </table> } @if (Model != null && Model.Rows.Count > 0) { <table class="table table-dark"> <thead> <tr> @foreach (DataColumn column in Model.Columns) { <th>@column.ColumnName</th> } </tr> </thead> <tbody> @foreach (DataRow row in Model.Rows) { <tr> @for (int i = 0; i < Model.Columns.Count; i++) { <td>@row[i]</td> } </tr> } </tbody> </table> } $vbLabelText $csharpLabel 此增強功能可正確顯示 Excel 檔案中的列標題,例如"客戶名稱"、"運費"和"單價"。對於涉及命名區域或命名表的更複雜場景,IronXL 提供了直接存取結構化資料的其他方法。 常見問題解答 沒有 Microsoft Office,如何在 ASP.NET MVC 中讀取 Excel 檔案? IronXL 可讓您直接在 C# 中讀取 Excel 檔案,而無需任何 Microsoft Office 依賴。只需透過 NuGet 安裝 IronXL,然後使用 WorkBook.Load() 開啟您的 Excel 檔案,並只需一行程式碼即可將其轉換為 DataTable: var dataTable = IronXl.WorkBook.Load('CustomerData.xlsx').DefaultWorkSheet.ToDataTable(true); 在 ASP.NET 中將 Excel 資料轉換為 DataTable 的最快方法是什麼? IronXL.Excel 提供 ToDataTable() 方法,可立即將 Excel 工作表轉換為 System.Data.DataTable 物件。使用 IronXL 載入工作簿後,存取任何工作表並呼叫 ToDataTable(true) 以包含表頭。此轉換只需一行程式碼,並可與 ASP.NET MVC 視圖無縫運作。 Web 應用程式中的 Excel 檔案處理應使用哪個 .NET 版本? IronXL 支援 .NET Framework 4.6.2+ 和 .NET Core 3.1+。對於新的 ASP.NET MVC 專案,建議使用 .NET 6.0 或更高版本,因為在使用 IronXL 處理大型 Excel 檔案時,它可提供更佳的記憶體管理,並可為試算表作業提供更好的 async/await 支援。 哪種 Visual Studio 專案範本最適合 Excel 閱讀功能? 在建立專案時,請選擇「ASP.NET Core Web App (Model-View-Controller)」範本。這種 MVC 結構完美地補足了 IronXL.Excel 的 DataTable 轉換功能,讓您可以在控制器中載入和處理 Excel 檔案,同時在檢視中乾淨地顯示資料。 如何在我的 ASP.NET 專案中安裝 Excel 閱讀函式庫? 透過 NuGet 套件管理員控制台執行「Install-Package IronXL.Excel」安裝 IronXL。安裝完成後,請檢查專案的相依性,並在控制器中加入「using IronXL;」,以驗證是否已正確加入 - IntelliSense 應該會立即辨識命名空間。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 準備好開始了嗎? Nuget 下載 1,913,565 | 版本: 2026.3 剛剛發布 開始免費試用 免費 NuGet 下載 總下載量:1,913,565 查看許可證 還在捲動嗎? 想要快速證明? PM > Install-Package IronXL.Excel 執行範例 觀看您的資料變成試算表。 免費 NuGet 下載 總下載量:1,913,565 查看許可證