使用IRONXL

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

更新 2024年八月23日
分享:

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

什么是 IronXL?

IronXL 是一个.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 开发的 IDE。 (建议使用 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 Application "并点击 "Create(创建)"。

安装 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. 右键点击在解决方案资源管理器中的 "Pages" 文件夹,并选择 "添加" > "Razor Page"。
  2. 输入 "ExcelOpener" 作为页面名称并点击 "添加"。

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

    创建一个新的Razer页面

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

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

读取 Excel 文件

让我们深入代码。所提供的 ExcelOpenerModel 类是一个 Razor 页面模型。该类有一个 List<List<string>> 属性 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 文件并从默认工作表读取数据。 (工作簿的第一张纸).每一行表示为一个 List<string>然后将所有这些列表添加到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 Page 模型。它包含一个名为 Data 的属性,类型为 List。<List>`,它将保存 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中点击“构建”按钮或使用Ctrl + Shift + B快捷键来构建应用程序。按F5或者点击Visual Studio中的“开始”按钮来运行应用程序。

一旦应用程序运行起来,点击导航栏中的相应链接,导航到“ExcelOpener”页面。页面将以表格格式显示来自Excel的数据。

您可以在表格中修改数据,并点击“保存”按钮将更改保存回Excel文件。

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

在Web应用程序中显示Excel数据

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

IronXL提供了 免费试用,让您可以评估其功能。如果您觉得它对您的项目有用,您可以从 $749 起购买许可证。

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

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

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