
如何在 ASP .NET Core 中開啟 Excel 文件
本教程將展示如何在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,這是由Microsoft開發的基於XML的電子表格文件格式。
先決條件
在深入程式碼之前,請確保您擁有以下內容:
- 已安裝.NET Core 3.1或更高版本。
- 適合.NET開發的IDE(建議使用Microsoft Visual Studio)。
- 對ASP.NET Core和Razor Pages的基本了解。
建立新的.NET Core專案
- 打開Microsoft Visual Studio並選擇"建立一個新專案"。
- 從專案模板列表中選擇"ASP.NET Core Web應用程式"並點擊"下一步"。
- 為您的專案提供一個名稱,例如"Open_Excel_File_.NET_Core",選擇一個位置,然後點擊"下一步"。
- 選擇".NET Core"作為目標框架並選擇"ASP.NET Core 3.1或更高版本"作為版本。 在"專案模板"部分,選擇"Web應用程式"並點擊"建立"。
安裝IronXL套件
接下來的步驟是在這個新建立的專案中安裝IronXL套件:
-
在方案總管中右鍵點擊專案並選擇"管理NuGet套件"。
-
在"瀏覽"選項卡中,搜索"IronXL"並點擊IronXL.Excel套件的"安裝"。
在NuGet套件管理器UI中搜尋並安裝IronXL套件 -
等待套件安裝完成。
您的ASP.NET Core專案現在已設置完畢,IronXL程式庫已安裝並準備使用。
建立Razor Page
現在,讓我們建立一個Razor Page來編寫開啟Excel文件的程式碼。
-
在方案總管中的"Pages"文件夾上右鍵單擊,然後選擇"新增" > "Razor Page"。
-
輸入"ExcelOpener"作為頁面名稱,然後點擊"新增"。
建立新的Razor Page
這將建立兩個文件:ExcelOpener.cshtml和ExcelOpener.cshtml.cs。
ExcelOpener.cshtml文件包含頁面的HTML標記,而ExcelOpener.cshtml.cs文件則包含頁面的C#後端程式碼。
讀取Excel文件
讓我們深入程式碼。 提供的ExcelOpenerModel類是Razor Page Model。 此類有一個Data,將用於儲存從Excel文件讀取的資料。
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文件並讀取預設工作表(工作簿中的第一張工作表)的資料。 每一行都表示為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 Sub OnGet()
Try
Data = New List(Of List(Of String))()
' Load your Excel file
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
' Select your Worksheet
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
For i As Integer = 0 To sheet.RowCount - 1
Dim row = New List(Of String)()
For j As Integer = 0 To sheet.ColumnCount - 1
row.Add(sheet.GetCellAt(i, j).Value.ToString())
Next j
Data.Add(row)
Next i
Catch ex As Exception
' Handle exceptions here
Console.WriteLine(ex.Message)
End Try
End Sub關鍵方法說明
- **
WorkBook.Load(filepath):**此方法從指定的文件路徑載入Excel文件。 它有助於載入和讀取Excel工作表。 - **
workbook.DefaultWorkSheet:**此屬性獲取Excel電子表格中預設(第一張)Excel工作表。 - **
sheet.GetCellAt(i, j).Value.ToString():**這個方法在指定的行和列索引處獲取儲存格並將其值轉換為字串。 這是一個範例索引方法,可以根據行和列索引存取Excel文件中的特定儲存格或範圍。
簡短說明
在ExcelOpenerModel的類表示Razor Page Model。 它包含一個名為List<List<string>>,將容納從Excel文件獲取的資料。
Data屬性。
寫入Excel文件
ExcelOpenerModel類中用於保存對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 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文件,選擇預設工作表,並根據從表單接收到的修改資料更新儲存格值。
編輯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>
導航到頁面
在**_Layout.cshtml**中,導航選單中新增了一個指向頁面的連結。 點擊此連結,將導航到Excel開啟頁面。
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
運行應用程式並解釋輸出
通過在Visual Studio中點擊"建置"按鈕或使用Ctrl + Shift + B快捷鍵來建置應用程式。 通過按F5或在Visual Studio中點擊"啟動"按鈕來運行應用程式。
一旦應用程式運行起來,透過點擊導航欄上的相應連結導航到"ExcelOpener"頁面。 頁面將以表格格式顯示來自Excel的資料。
您可以在表格中修改資料,然後點擊"儲存"按鈕將更改保存回Excel文件。
在Web應用程式中顯示Excel資料
本教程演示了如何在ASP.NET Core應用程式中使用IronXL開啟Excel文件。 IronXL提供了一種簡單且方便的方法來讀取和操作Excel文件。 您可以查閱IronXL文件以了解更多進階功能和功能。
IronXL提供免費試用,讓您可以評估其功能。 如果您發現它對您的專案有幫助,您可以以$999開始購買授權。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章



