
如何在 ASP.NET 中查看 Excel
本教程將全面演示如何使用ASP.NET MVC和IronXL建立Excel檢視器。 此檢視器將使使用者能夠直接從其網頁顯示、編輯和導航Excel文件。
什麼是IronXL?
IronXL 是一個強大的 .NET 程式庫,提供與Excel操作相關的大量功能。 它提供了一個簡化的API,讓 .NET 開發者可以編寫、操控和讀取Excel文件,支援多種文件格式,包括XLS、XLSX、CSV等。
使用IronXL,您可以讀取Excel文件、提取資料、新增或編輯工作表、建立或修改行和列、應用公式、保存更改,還能做更多。 所有這些操作均可在您的機器上不需要安裝Microsoft Excel的情況下執行。
IronXL支援圖片、樣式、條件格式化和其他複雜的Excel功能,使其成為 .NET Excel 操作的全面解決方案。 這是為您的ASP.NET MVC應用程式處理資料來源和電子表格要求的理想選擇。 IronXL程式庫將用於在ASP.NET Web應用程式中檢視Excel文件。
先決條件
- 基本的ASP.NET MVC理解
- 在您的機器上安裝的Visual Studio
- 已安裝IronXL程式庫。 您可以在他們的官方文件中找到安裝指南。
入門
首先,讓我們在Visual Studio中建立一個新的ASP.NET MVC專案。
-
開啟Visual Studio。
-
點擊 文件 > 新建 > 專案。
-
在新專案窗口中,選擇 ASP.NET Web應用程式 (.NET Framework) 模板。
在Visual Studio中建立新的ASP.NET Web應用程式 -
請將專案命名為 ExcelViewer,選擇專案位置,然後點擊 建立 按鈕。
配置您的專案
本文將重點討論在此ASP.NET MVC應用程式中實現Excel檢視器功能。
將IronXL新增到您的專案
為了處理Excel文件格式(如.xls、.xlsx和.csv),IronXL提供了綜合功能來載入Excel文件、讀取、寫入甚至修改Excel資料。 它支持公式、圖片、格式等。
-
右鍵點擊 解決方案總管中的專案,然後導航到 管理NuGet程式包。
-
在 NuGet程式包管理器中,搜尋 IronXL.Excel。
-
點擊 安裝 將其新增到您的專案中。
在NuGet套件管理器UI中搜尋並安裝IronXL套件
您也可以使用以下命令從程式包管理器控制台安裝IronXL:
從程式包管理器控制台安裝IronXL程式包
現在已安裝IronXL,我們來進行下一步。
建立模型
ExcelModel
第一步是為Excel資料建立一個模型。 ExcelModel 類別將代表一個Excel工作表,並將包含工作表名稱和Excel工作表中的資料。
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelModel
{
public string SheetName { get; set; }
// Data is a list of string arrays, each array represents a row in the sheet.
public List<string[]> Data { get; set; }
}
}
ExcelModel 是用兩個屬性定義的,SheetName 和 Data。 SheetName 是一個簡單的字串來保存每個Excel工作表的名稱。 Data 是用於儲存Excel工作表中每行資料的字串陣列列表。
ExcelViewModel
接下來,我們來建立 ExcelViewModel。 此模型是一個包含文件、消息以及代表文件中所有工作表資料的 ExcelModel 列表包裝器。
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
namespace Excel_File_Viewer_IronXl.Models
{
public class ExcelViewModel
{
public IFormFile File { get; set; } // For uploading Excel file
public string Message { get; set; } // Message for storing success/error messages
public List<ExcelModel> ExcelData { get; set; } // List to store data from all sheets
}
}Imports Microsoft.AspNetCore.Http
Imports System.Collections.Generic
Namespace Excel_File_Viewer_IronXl.Models
Public Class ExcelViewModel
Public Property File As IFormFile ' For uploading Excel file
Public Property Message As String ' Message for storing success/error messages
Public Property ExcelData As List(Of ExcelModel) ' List to store data from all sheets
End Class
End Namespace此類將用作檢視模型。 它有一個 IFormFile 屬性用於文件上傳,一個 Message 字串用於顯示任何消息,和一個 List<ExcelModel> 來儲存檢索到的Excel資料。
5. 建立 ExcelController 以載入Excel文件進行資料提取
然後建立一個新的 ExcelController。 這是奇迹發生的地方! Excel文件正使用IronXL的 WorkBook.Load 函式載入,迴圈遍歷工作表,提取資料,並將其新增到 ExcelViewModel。
using Excel_File_Viewer_IronXl.Models;
using IronXL;
using System.Collections.Generic;
using System.Web.Mvc;
using System;
using System.Linq;
public class ExcelController : Controller
{
// GET: Excel
public ActionResult Index()
{
var model = new ExcelViewModel();
// Define the file path for the Excel file
string filePath = Server.MapPath("~/App_Data/Test.xlsx");
// List to store data for each sheet
List<ExcelModel> data = new List<ExcelModel>();
try
{
// Load workbook directly from a file path
var workbook = WorkBook.Load(filePath);
// Loop through all worksheets in the workbook
foreach (var worksheet in workbook.WorkSheets)
{
// Add each worksheet's name and data to the data list
data.Add(new ExcelModel
{
SheetName = worksheet.Name,
Data = worksheet.Rows.Select(r => r.ToArray().Select(c => c.Value.ToString()).ToArray()).ToList()
});
}
model.ExcelData = data;
model.Message = "File processed successfully!";
}
catch (Exception ex)
{
model.Message = $"Error occurred while processing file: {ex.Message}";
}
return View(model);
}
}
在這裡,初始化一個 ExcelViewModel,然後使用IronXL載入 WorkBook,迴圈遍歷每個 WorkSheet,並為每個 WorkSheet 建立一個 ExcelModel,其中包含該工作表的名稱和資料。 然後將 ExcelModel 新增到 ExcelData 列表中於 ExcelViewModel。
以下Excel文件的資料將被載入並顯示:
範例Excel文件
6. 建立視圖
在 Views/Excel 目錄中,建立一個新的HTML文件 Index.cshtml 來顯示Excel資料。 然後使用Bootstrap的 nav-tabs 來展示Excel文件中的每個工作表。每個工作表將是單獨的標籤,該標籤的內容將為工作表的資料。
@model Excel_File_Viewer_IronXl.Models.ExcelViewModel
@{
ViewBag.Title = "Index";
}
<h2>Excel File Viewer</h2>
@if (Model.ExcelData != null)
{
<ul class="nav nav-tabs" id="myTab" role="tablist">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<li class="nav-item">
<a class="nav-link @(i == 0 ? "active" : "")" id="tab-@i" data-toggle="tab" href="#content-@i" role="tab" aria-controls="content-@i" aria-selected="@(i == 0)">
@Model.ExcelData[i].SheetName
</a>
</li>
}
</ul>
<div class="tab-content" id="myTabContent">
@for (int i = 0; i < Model.ExcelData.Count; i++)
{
<div class="tab-pane fade @(i == 0 ? "show active" : "")" id="content-@i" role="tabpanel" aria-labelledby="tab-@i">
<table class="table table-bordered">
@foreach (var row in Model.ExcelData[i].Data)
{
<tr>
@foreach (var cell in row)
{
<td>@cell</td>
}
</tr>
}
</table>
</div>
}
</div>
}net在此程式碼範例中,nav nav-tabs 將生成一系列標籤,每個代表Excel文件中的一個工作表。對應的標籤內容將以表格格式顯示相應工作表的資料。 通過進行一些改動,新增了一個瀏覽按鈕以便手動選擇Excel文件。
運行程式
在遵循所有步驟並正確設置專案後,是時候運行它了。 您會看到一個網頁,其中包含以您的Excel文件中的工作表命名的標籤。點擊標籤將以表格格式顯示相應工作表的資料。
Excel檢視器
結論
您剛剛使用IronXL建立了一個ASP.NET Excel檢視器! 這個強大的程式庫讓使用者可以更高效和可控地處理Excel文件。 在 .NET 環境中,借助IronXL,處理Excel文件從未如此輕鬆。
IronXL 提供 免費試用,讓您可以在無需任何前置成本的情況下探索並了解其豐富功能。一旦您測試並發現它是您的完美解決方案,授權費用從 $999 開始。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章



