IRONSOFTWAREHOME
USING IRONXL

如何在 ASP.NET 中查看 Excel

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

本教程將全面演示如何使用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專案。

  1. 開啟Visual Studio。

  2. 點擊 文件 > 新建 > 專案

  3. 在新專案窗口中,選擇 ASP.NET Web應用程式 (.NET Framework) 模板。

    如何在ASP.NET中檢視Excel,圖1:在Visual Studio中建立新的ASP.NET Web應用程式 在Visual Studio中建立新的ASP.NET Web應用程式

  4. 請將專案命名為 ExcelViewer,選擇專案位置,然後點擊 建立 按鈕。

    如何在ASP.NET中檢視Excel,圖2:配置您的專案 配置您的專案

本文將重點討論在此ASP.NET MVC應用程式中實現Excel檢視器功能。

將IronXL新增到您的專案

為了處理Excel文件格式(如.xls、.xlsx和.csv),IronXL提供了綜合功能來載入Excel文件、讀取、寫入甚至修改Excel資料。 它支持公式、圖片、格式等。

  1. 右鍵點擊 解決方案總管中的專案,然後導航到 管理NuGet程式包

  2. NuGet程式包管理器中,搜尋 IronXL.Excel

  3. 點擊 安裝 將其新增到您的專案中。

    如何在ASP.NET中檢視Excel,圖3:在NuGet程式包管理器UI中搜尋並安裝IronXL程式包 在NuGet套件管理器UI中搜尋並安裝IronXL套件

您也可以使用以下命令從程式包管理器控制台安裝IronXL:

PM > Install-Package IronXL.Excel

如何在ASP.NET中檢視Excel,圖4:從程式包管理器控制台安裝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; }
    }
}
C#

ExcelModel 是用兩個屬性定義的,SheetNameDataSheetName 是一個簡單的字串來保存每個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
    }
}

此類將用作檢視模型。 它有一個 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);
    }
}
C#

在這裡,初始化一個 ExcelViewModel,然後使用IronXL載入 WorkBook,迴圈遍歷每個 WorkSheet,並為每個 WorkSheet 建立一個 ExcelModel,其中包含該工作表的名稱和資料。 然後將 ExcelModel 新增到 ExcelData 列表中於 ExcelViewModel

以下Excel文件的資料將被載入並顯示:

如何在ASP.NET中檢視Excel,圖5:範例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>
}

在此程式碼範例中,nav nav-tabs 將生成一系列標籤,每個代表Excel文件中的一個工作表。對應的標籤內容將以表格格式顯示相應工作表的資料。 通過進行一些改動,新增了一個瀏覽按鈕以便手動選擇Excel文件。

運行程式

在遵循所有步驟並正確設置專案後,是時候運行它了。 您會看到一個網頁,其中包含以您的Excel文件中的工作表命名的標籤。點擊標籤將以表格格式顯示相應工作表的資料。

如何在ASP.NET中檢視Excel,圖6:Excel檢視器 Excel檢視器

結論

您剛剛使用IronXL建立了一個ASP.NET Excel檢視器! 這個強大的程式庫讓使用者可以更高效和可控地處理Excel文件。 在 .NET 環境中,借助IronXL,處理Excel文件從未如此輕鬆。

IronXL 提供 免費試用,讓您可以在無需任何前置成本的情況下探索並了解其豐富功能。一旦您測試並發現它是您的完美解決方案,授權費用從 $999 開始。

Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立