使用IRONXL

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

已更新 2024年8月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」,選擇一個位置,然後點擊「下一步」。

  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" 資料夾,選擇 "Add" > "Razor Page"。
  2. 輸入 "ExcelOpener" 作為頁面名稱,然後點擊 "Add"。

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

    創建新的 Razer 頁面

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

ExcelOpener.cshtml 文件包含頁面的 HTML 標記,ExcelOpener.cshtml.cs 文件包含頁面的 C# 程式碼後端。

读取 Excel 文件

讓我們深入研究代碼。提供的 ExcelOpenerModel 類是一個 Razor Page 模型。這個類有一個 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<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當頁面被請求時,會調用 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 中的 "Start" 按鈕來運行應用程式。

一旦應用程式運行,通過點擊導航欄中的相應連結導航到 "ExcelOpener" 頁面。該頁面將以表格式顯示 Excel 中的數據。

您可以修改表格中的數據,然後點擊 "Save" 按鈕將更改保存回 Excel 文件中。

如何在 ASP .NET Core 中打開 Excel 檔案,圖 3:在 Web 應用程式中顯示 Excel 資料

在網路應用程式中顯示 Excel 資料

本教程演示了如何在 ASP.NET Core 應用程式中使用 IronXL 打開 Excel 文件。IronXL 提供了一種簡單而方便的方法來讀取和操作 Excel 文件。您可以瀏覽 IronXL 文件以了解更高級的功能和特性。

IronXL 提供了 免費試用,使您可以評估其功能。如果您覺得對您的專案有幫助,可以購買從 $Lite License 起的授權。

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

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

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