在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
本教程將展示如何在 ASP.NET Core 應用程式中使用 IronXL 庫開啟 Excel 文件。 它將涵蓋讀取 Excel 文件的基本步驟,然後顯示其中的數據並將修改後的數據保存回文件。
IronXL 是一個 .NET Excel 函式庫,提供處理 Excel 文件的功能,而無需依賴 Microsoft Excel 或 Office Interop。 它支持 .NET Framework 和 .NET Core,僅需幾行程式碼即可撰寫、操作和讀取 Excel 檔案的功能。 如需有關讀取 Excel 文件的詳細教學,請參閱此Excel 教學。
IronXL 庫可以讀取和寫入 Excel 文件,提取數據,操作這些數據,甚至可以從頭創建新的 Excel 文件。 IronXL 不僅支援 .XLS 格式,也相容 .XLSX,這是一種由 Microsoft 開發的用於表示電子表格的基於 XML 的文件格式。
在深入研究代碼之前,請確保您具備以下內容:
安裝 .NET Core 3.1 或更高版本。
適合.NET開發的IDE(推薦使用Microsoft Visual Studio)。
打開 Microsoft Visual Studio,然後選擇「建立新專案」。
從專案範本列表中選擇「ASP.NET Core Web App」,然後點擊「下一步」。
為您的專案提供一個名稱,例如 "Open_Excel_File_.NET_Core",選擇一個位置,然後點擊“下一步”。
下一步是在這個新創建的專案中安裝IronXL套件:
在解決方案總管中右鍵點擊專案,然後選擇「管理 NuGet 套件」。
在「瀏覽」標籤中,搜尋「IronXL」並點擊「安裝」IronXL.Excel套件。
在 NuGet 套件管理員 UI 中搜尋並安裝 IronXL 套件
等待套件安裝完成。
您的 ASP.NET Core 專案現已設置完畢,並且 IronXL 庫已安裝且準備就緒。
現在,讓我們建立一個 Razor 頁面來撰寫開啟 Excel 檔案的程式碼。
在解決方案總管中右鍵點擊「Pages」資料夾,然後選擇「新增」>「Razor Page」。
輸入「ExcelOpener」作為頁面名稱,然後點擊「新增」。
建立新 Razer 頁面
這將創建兩個文件:ExcelOpener.cshtml 和 ExcelOpener.cshtml.cs。
ExcelOpener.cshtml 檔案包含該頁面的 HTML 標記,而 ExcelOpener.cshtml.cs 檔案包含該頁面的 C# 後置代碼。
讓我們深入研究程式碼。 所提供的ExcelOpenerModel
類別是一個Razor Page Model。 此類別有一個屬性Data
,其類型為List<List<string>>
,將用於存儲從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
在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
WorkBook.Load(filepath)
:此方法從指定的檔案路徑載入 Excel 文件。 它有助於加載和閱讀 Excel 表格。workbook.DefaultWorkSheet
:此屬性用於獲取 Excel 試算表中的預設(第一個)工作表。sheet.GetCellAt(i, j).Value.ToString()
:這會獲取在指定行和列索引處的單元格,並將其值轉換為字串。 這是一個索引方法的示例,可以根據行和列的索引訪問 Excel 文件中的特定單元格或範圍。在ExcelOpener.cshtml.cs文件中,名為ExcelOpenerModel
的類代表了Razor Page模型。 它包含一個名為 Data
的屬性,類型為 List<List<string>>
,將用於保存 Excel 文件中的數據。
當請求頁面時,會呼叫 OnGet
方法,該方法負責從 Excel 文件中讀取數據。它使用 IronXL 加載 Excel 文件,選擇默認工作表,並遍歷行和列以填充 Data
屬性。
在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
sheet.SetCellValue(i, j, Data[i][j])
:此方法設置指定行和列索引處單元格的值。workbook.SaveAs(filepath)
:此方法將 Excel 工作簿儲存到指定的檔案路徑。OnPost
方法在表單提交時被調用,並將修改後的數據保存回 Excel 文件。它加載 Excel 文件,選擇默認工作表,並根據從表單接收到的修改數據更新單元格的值。
在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
在_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>
透過在 Visual Studio 中點擊「Build」按鈕或使用 Ctrl + Shift + B
快捷鍵來建置應用程式。 按下 F5 或在 Visual Studio 中點擊「開始」按鈕來執行應用程式。
一旦應用程式運行,請點擊導航列中的相應連結以導航到 "ExcelOpener" 頁面。 該頁面將以表格格式顯示來自 Excel 的數據。
您可以修改表格中的資料,然後點擊「保存」按鈕將更改儲存回 Excel 文件。
在 Web 應用程式中顯示 Excel 資料
本教程演示了如何在 ASP.NET Core 應用程式中使用 IronXL 打開 Excel 文件。 IronXL 提供了一種簡單且方便的方式來讀取和操作 Excel 文件。 您可以探索 IronXL 文件以了解更多進階功能和特性。
IronXL 提供免費試用,讓您評估其功能。 如果您發現它對您的專案有幫助,您可以購買從$749起的許可證。