使用IRONXL

如何在ASP .NET核心中打開Excel文件

已更新 2024年8月23日
分享:

本教程將展示如何在 ASP.NET Core 應用程式中使用 IronXL 庫開啟 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",選擇一個位置,然後點擊“下一步”。

  4. 選擇「.NET Core」作為目標框架,並選擇「ASP.NET Core 3.1 或更高版本」作為版本。 在「專案範本」區段中,選擇「Web 應用程式」並點選「建立」。

安裝 IronXL 套件

下一步是在這個新創建的專案中安裝IronXL套件:

  1. 在解決方案總管中右鍵點擊專案,然後選擇「管理 NuGet 套件」。

  2. 在「瀏覽」標籤中,搜尋「IronXL」並點擊「安裝」以安裝 IronXL.Excel 套件。

    如何在 ASP .NET Core 中打開 Excel 文件,圖 1:在 NuGet Package Manager UI 中搜尋並安裝 IronXL 套件

    在 NuGet 包管理器 UI 中搜尋並安裝 IronXL 套件

  3. 等待套件安裝完成。

    您的 ASP.NET Core 專案現已設置完畢,並且 IronXL 庫已安裝且準備就緒。

建立 Razor 頁面

現在,讓我們建立一個 Razor 頁面來撰寫開啟 Excel 檔案的程式碼。

  1. 在解決方案總管中右鍵點擊「Pages」資料夾,然後選擇「新增」>「Razor Page」。

  2. 輸入「ExcelOpener」作為頁面名稱,然後點擊「新增」。

    如何在 ASP .NET Core 中打開 Excel 檔案,圖 2:創建一個新的 Razer 頁面

    建立新的 Razer 頁面

    這將創建兩個文件:ExcelOpener.cshtmlExcelOpener.cshtml.cs

    ExcelOpener.cshtml 文件包含頁面的 HTML 標記,而 ExcelOpener.cshtml.cs 文件包含頁面的 C# 後置代碼。

讀取 Excel 文件

讓我們深入研究程式碼。 提供的 ExcelOpenerModel 類別是一個 Razor 頁面模型。 這個類別有一個 List<List>用於儲存從 Excel 文件讀取的數據的Data` 屬性。

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, 然後這些列表都會被添加到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, 資料[我][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 文件。 您可以探索 IronXL 文件以了解更多進階功能和特性。

IronXL 提供一個免費試用,讓您評估其功能。 如果您發現對您的項目有用,您可以購買價格從 $749 開始的許可證。

< 上一頁
如何使用 IronXL 處理 Excel 文件:一個 .NET Excel 庫
下一個 >
如何在 Excel 合併儲存格不丟失數據

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,111,773 查看許可證 >