
如何在 ASP.NET 中查看 Excel
本综合教程将演示如何使用ASP.NET MVC和IronXL构建一个Excel查看器。 此查看器将使用户能够直接从他们的网页中显示、编辑和浏览Excel文件。
什么是 IronXL?
IronXL 是一个功能强大的.NET库,提供与Excel操作相关的大量功能。 它提供了简化的API,让.NET开发人员能够以包括XLS、XLSX、CSV等在内的各种文件格式编写、操作和读取Excel文档。
使用IronXL,您可以读取Excel文件,提取数据、添加或编辑工作表、创建或修改行和列、应用公式、保存更改等等。 所有这些操作都可以在不需要在您的机器上安装Microsoft Excel的情况下进行。
IronXL支持图像、样式、条件格式和其他复杂的Excel功能,使其成为.NET Excel操作的全面解决方案。 它非常适合处理您的ASP.NET MVC应用程序的数据源和电子表格需求。 将在ASP.NET Web应用程序中使用IronXL库查看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; }
}
}
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此类将用作视图模型。 它有一个List<ExcelModel>用于存储检索到的Excel数据。
5. 创建ExcelController以加载Excel文件进行数据提取
然后创建一个新的ExcelController。 这是奇迹发生的地方! 使用IronXL的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,循环遍历每个ExcelModel。 然后将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文件中的工作表名称命名的tabs构成的网页。点击标签将以表格式显示相应工作表的数据。
Excel查看器
结论
您刚刚使用IronXL创建了一个ASP.NET Excel查看器! 这个强大的库使用户能够更高效、更易于管理地处理Excel文件。 在.NET环境中,借助IronXL,处理Excel文件从未如此简单。
IronXL提供免费试用,让您可以在不需要前期费用的情况下探索并了解其广泛的功能。一旦您测试并发现它是您需求的完美解决方案,许可证起价为$999。

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。
相关文章



