如何在 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_ExcelFile.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 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 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 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">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
@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]" />
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" />
</form>
導航到頁面
在_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中點擊"建置"按鈕或使用Ctrl + Shift + B快捷鍵來建置應用程式。 通過按F5或在Visual Studio中點擊"啟動"按鈕來運行應用程式。
一旦應用程式運行起來,透過點擊導航欄上的相應連結導航到"ExcelOpener"頁面。 頁面將以表格格式顯示來自Excel的資料。
您可以在表格中修改資料,然後點擊"儲存"按鈕將更改保存回Excel文件。
在Web應用程式中顯示Excel資料
本教程演示了如何在ASP.NET Core應用程式中使用IronXL開啟Excel文件。 IronXL提供了一種簡單且方便的方法來讀取和操作Excel文件。 您可以查閱IronXL文件以了解更多進階功能和功能。
IronXL提供免費試用,讓您可以評估其功能。 如果您發現它對您的專案有幫助,您可以以$999開始購買授權。
常見問題
如何在 ASP.NET Core 應用程式中開啟 Excel 檔案?
您可以使用 IronXL 程式庫在 ASP.NET Core 應用程式中開啟 Excel 檔案。首先透過 NuGet 安裝 IronXL 套件,然後使用 WorkBook.Load 載入您的 Excel 檔案。您可以透過選擇工作表並迭代行和列來存取資料。
using IronXL 進行 Excel 操作相比使用 Office Interop 有哪些優勢?
IronXL 允許您在不需要 Microsoft Excel 或 Office Interop 相依的情況下操作 Excel 檔案,這使其非常適合無法安裝 Microsoft Office 的伺服器環境。它支援 .NET Framework 和 .NET Core,並能處理 .XLS 和 .XLSX 格式。
如何在使用 Razor 頁面的網頁應用程式中顯示 Excel 資料?
要在網頁應用程式中顯示 Excel 資料,您可以建立一個使用 IronXL 載入和讀取 Excel 資料的 Razor 頁面。使用 HTML 表單將每個儲存格的資料渲染成使用者可在網頁介面中查看和編輯的文字輸入字段。
設置 ASP.NET Core 專案以進行 Excel 操作需要哪些條件?
要設置 ASP.NET Core 專案以進行 Excel 操作,您需要有 .NET Core 3.1 或更高版本、類似 Microsoft Visual Studio 的 IDE,以及對 ASP.NET Core 和 Razor 頁面的基礎理解。從 NuGet 安裝 IronXL 套件以開始工作。
如何在 ASP.NET Core 中編輯和儲存 Excel 檔案的更改?
您可以透過 Razor 頁面的 HTML 表單允許使用者修改資料來編輯和儲存 Excel 檔案的更改。使用 IronXL 方法,如 sheet.SetCellValue 來更新資料,並使用 workbook.SaveAs 來儲存修改過的 Excel 檔案。
設置 Razor 頁面以進行 Excel 檔案操作有哪些步驟?
設置 Razor 頁面涉及在您的 ASP.NET Core 專案中建立新的 Razor 頁面。使用 Razor 頁面來使用 IronXL 載入 Excel 資料、在網頁表單中顯示資料,並處理表單提交以更新和將更改儲存回 Excel 檔案。
如何排除我的 Excel 檔案在 ASP.NET Core 中無法載入的故障?
如果您的 Excel 檔案無法載入,請確保檔案路徑正確無誤且應用程式可以存取。確認 IronXL 安裝正確且檔案格式受支援。檢查是否有任何異常或錯誤消息,這可能提示問題所在。
我可以在購買之前試用 IronXL 程式庫嗎?
可以,IronXL 提供免費試用版,允許您評估其功能。您可以使用這個試用版來確保其滿足您的需求,再決定是否購買授權。




