使用IRONXL

如何在ASP .NET Core中打开Excel文件

更新 2024年八月23日
分享:

本教程将演示如何在使用 IronXL 库的 ASP.NET Core 应用程序中使用 IronXL 打开 Excel 文件。 它将涵盖读取 Excel 文件的基本步骤,然后从中显示数据并将修改后的数据保存回文件。

什么是IronXL?

IronXLMicrosoft Excel 库是一个 .NET Excel 库,可提供处理 Excel 文档的功能,而无需依赖 Microsoft Excel 或 Office Interop。 它支持 .NET Framework 和 .NET Core,只需几行代码即可提供编写、操作和读取 Excel 文件的功能。 有关阅读 Excel 文件的详细教程,请参阅以下内容Excel教程.

IronXL 库可以读取和写入Excel文档, 提取数据您可以从这些工具中获取信息、操作数据,甚至从头开始创建新的 Excel 文件。 IronXL 不仅支持 .XLS 格式,还支持兼容 .XLSX这是由微软开发的基于XML的用于表示电子表格的文件格式。

前提条件

在深入研究代码之前,请确保您具备以下条件:

  1. 已安装 .NET Core 3.1 或更高版本。

  2. 适合 .NET 开发的集成开发环境(建议使用 Microsoft Visual Studio).

  3. 对 ASP.NET Core 和 Razor Pages 有基本了解。

创建一个新的 .NET Core 项目

  1. 打开 Microsoft Visual Studio,选择 "创建新项目"。

  2. 从项目模板列表中选择 "ASP.NET Core Web App",然后单击 "下一步"。

  3. 为您的项目提供一个名称,例如 "Open_Excel_File_.NET_Core",选择一个位置,然后单击 "Next(下一步)"。

  4. 选择".NET Core "作为目标框架,"ASP.NET Core 3.1 或更高版本 "作为版本。 在 "项目模板 "部分,选择 "Web 应用程序 "并点击 "创建"。

安装 IronXL 软件包

下一步是在这个新创建的项目中安装 IronXL 软件包:

  1. 右键单击解决方案资源管理器中的项目,选择 "管理 NuGet 包"。

  2. 在 "浏览 "选项卡中搜索 "IronXL",然后点击 "安装 "IronXL.Excel软件包。

    在 ASP .NET Core 中如何打开 Excel 文件,图 1:在 NuGet 包管理器 UI 中搜索并安装 IronXL 包。

    在 NuGet 软件包管理器用户界面中搜索并安装 IronXL 软件包

  3. 等待软件包安装。

    您的 ASP.NET Core 项目现已设置完毕,IronXL 库也已安装并准备就绪。

创建 Razor 页面

现在,让我们创建一个 Razor 页面,编写打开 Excel 文件的代码。

  1. 右键单击解决方案资源管理器中的 "页面 "文件夹,然后选择 "添加">"Razor 页面"。

  2. 输入 "ExcelOpener "作为页面名称,然后点击 "添加"。

    如何在ASP .NET Core中打开Excel文件,图2:创建一个新的Razor页面

    创建新的 Razer 页面

    这将创建两个文件: ExcelOpener.cshtmlExcelOpener.cshtml.cs

    ExcelOpener.cshtml文件包含页面的 HTML 标记,ExcelOpener.cshtml.cs文件包含页面的 C# 代码背后。

阅读 Excel 文件

让我们深入代码。 所提供的 ExcelOpenerModel 类是一个 Razor 页面模型。 该类有一个<List>属性Data`,用于存储从 Excel 文件读取的数据。

public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }

public ExcelOpenerModel()
{
    Data = new List<List<string>>();
}
Public Property Data() As List(Of List(Of String))

'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: public ExcelOpenerModel()
Public Sub New()
	Data = New List(Of List(Of String))()
End Sub
VB   C#

OnGet 方法中,IronXL 被用来加载一个 Excel 文件并从默认工作表读取数据。(工作簿的第一张纸). 每一行用 "列表 "表示然后将所有这些列表添加到 Data 属性中。

public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnGet()
{
    try
    {
        Data = new List<List<string>>();
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < sheet.RowCount; i++)
        {
            var row = new List<string>();
            for (int j = 0; j < sheet.ColumnCount; j++)
            {
                row.Add(sheet.GetCellAt(i, j).Value.ToString());
            }
            Data.Add(row);
        }
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

解释的主要方法

  • WorkBook.Load(文件路径):此方法从指定的文件路径加载 Excel 文档。 这有助于加载和阅读 Excel 表。
  • workbook.DefaultWorkSheet:该属性获取默认(第一次)Excel 电子表格中的 Excel 工作表。
  • sheet.GetCellAt(i, j).Value.ToString():获取指定行和列索引处的单元格,并将其值转换为字符串。 这是一个索引方法示例,它可以根据行和列索引访问 Excel 文件中的特定单元格或范围。

简短解释

ExcelOpener.cshtml.cs文件中,一个名为 "ExcelOpenerModel "的类代表了 Razor 页面模型。 它包含一个名为 Data 的属性,其类型为 List<List<string>翻译时必须使用 >,其中将包含 Excel 文件中的数据。

OnGet "方法在请求页面时被调用,负责从 Excel 文件中读取数据。它使用 IronXL 加载 Excel 文件,选择默认工作表,并遍历行和列以填充 Data 属性。

编写 Excel 文件

ExcelOpenerModel "类中的 "OnPost "方法用于保存对 Excel 文件的修改。它首先加载 Excel 文件并检索默认工作表。 然后,它将 Data 中的值写入工作表中的单元格,并将工作簿保存为新文件。

public void OnPost()
{
    try
    {
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data [i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data [i][j]);
            }
        }

        // Save the Excel file
        var filename = "C:\\ModifiedData.xlsx"
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
public void OnPost()
{
    try
    {
        //Load your Excel file
        var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");

        //Select your Worksheet
        var sheet = workbook.DefaultWorkSheet;

        for (int i = 0; i < Data.Count; i++)
        {
            for (int j = 0; j < Data [i].Count; j++)
            {
                sheet.SetCellValue(i, j, Data [i][j]);
            }
        }

        // Save the Excel file
        var filename = "C:\\ModifiedData.xlsx"
        workbook.SaveAs(filename);
    }
    catch (Exception ex)
    {
        //Handle exceptions here
        Console.WriteLine(ex.Message);
    }
}
Public Sub OnPost()
	Try
		'Load your Excel file
		Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")

		'Select your Worksheet
		Dim sheet = workbook.DefaultWorkSheet

		For i As Integer = 0 To Data.Count - 1
			Dim j As Integer = 0
			Do While j < Data (i).Count
				sheet.SetCellValue(i, j, Data (i)(j))
				j += 1
			Loop
		Next i

		' Save the Excel file
		Dim filename = "C:\ModifiedData.xlsx" workbook.SaveAs(filename)
	Catch ex As Exception
		'Handle exceptions here
		Console.WriteLine(ex.Message)
	End Try
End Sub
VB   C#

关键方法说明

  • sheet.SetCellValue(i, j, 数据[i][j]):该方法设置指定行和列索引处单元格的值。
  • workbook.SaveAs(文件路径):此方法可将 Excel 工作簿保存到指定的文件路径。

简短解释

提交表单时会调用 "OnPost "方法,该方法会将修改后的数据保存回 Excel 文件。它加载 Excel 文件,选择默认工作表,并根据从表单接收到的修改数据更新单元格值。

编辑 Excel 数据的 HTML 表格

ExcelOpener.cshtml中,定义了一个用于显示和编辑 Excel 文件数据的表单。每个单元格的值都显示在一个文本输入框中。 编辑完成后,单击 "保存 "按钮将提交表单,触发 "OnPost "方法并将更改保存到 Excel 文件中。

@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel

<form method="post">
    <table class="table table-bordered table-striped">
        <!-- Bootstrap classes for tables -->
        @for (int i = 0; i < Model.Data.Count; i++)
        {
            <tr>
                @for (int j = 0; j < Model.Data[i].Count; j++)
                {
                    <td>
                        <input type="text" class="form-control" name="Data[@i][@j]" value="@Model.Data[i][j]" /> <!-- Bootstrap class for form controls -->
                    </td>
                }
            </tr>
        }
    </table>

    <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

页面导航

_Layout.cshtml中,导航菜单中添加了指向该页面的链接。 点击此链接,您将进入 Excel 开启页面。

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
HTML

运行应用程序并解释输出结果

通过点击 Visual Studio 中的 "Build"(构建)按钮或使用 "Ctrl + Shift + B "快捷键来构建应用程序。 按 F5 或单击 Visual Studio 中的 "开始 "按钮运行应用程序。

应用程序运行后,点击导航栏中的相应链接,导航至 "ExcelOpener "页面。 页面将以表格形式显示 Excel 中的数据。

您可以修改表格中的数据,然后单击 "保存 "按钮将更改保存回 Excel 文件。

如何在ASP .NET Core中打开Excel文件,图3:在Web应用程序中显示Excel数据

在网络应用程序中显示 Excel 数据

本教程演示了如何在 ASP.NET Core 应用程序中使用 IronXL 打开 Excel 文件。 IronXL.Excel 提供了一种简单方便的方式来读取和处理 Excel 文件。 您可以浏览 IronXL 文档,了解更多高级特性和功能。

IronXL 提供了一个免费试用此外,译文还应让您能够评估这些工具的功能。 如果您觉得它对您的项目有用,您可以从 $749 起购买许可证。

< 前一页
如何使用IronXL处理Excel文件:一个.NET Excel库
下一步 >
如何在不丢失数据的情况下合并Excel中的单元格

准备开始了吗? 版本: 2024.11 刚刚发布

免费NuGet下载 总下载量: 1,111,773 查看许可证 >