如何在 Razor 中導出 CSV 和 Excel
正在尋找使用 Razor Pages 將資料匯出到 Excel 檔案的方法嗎? 本文指導如何使用 IronXL for .NET 來達成此目標。
如何在 Razor 中匯出 CSV 和 Excel
- 安裝 C# 程式庫以匯出 CSV 和 Excel
- 建立 WorkBook 物件並使用
CreateWorkSheet方法來建立 WorkSheet - 用資料填充 WorkSheet 並更改單元格樣式
- 將 WorkBook 作為流返回,並將格式指定為電子表格以匯出為 Excel
- 指定格式為 text/csv 以匯出為 CSV 並使用 Razor 網頁應用程式
1. IronXL
IronXL 是一個用於操作 Excel 文件的 .NET 程式庫。 它基於 OpenXML SDK 構建,並提供了一個簡單的 API 用於讀取、寫入和操作 Excel 電子表格。 IronXL 可用於各種 .NET 應用程式,包括 Web 應用程式、桌面應用程式和控制台應用程式。 IronXL 提供了一系列使用 Excel 文件的功能,包括可以讀取和寫入資料到單個單元格、建立圖表和圖形,以及進行複雜計算。 它還支持高級 Excel 功能,如樞紐分析表、條件格式化和資料驗證。
在網頁開發中將資料匯出到 Excel 和 CSV 文件是常見的任務,而 Razor 和 IronXL 使其易於完成。 使用 IronXL,開發人員可以輕鬆地建立 Excel 電子表格並將其保存到文件或流。 然後可以使用 Razor 生成包含 Excel 文件連結的動態內容,允許使用者直接從網頁下載它們。 也可以使用 IronXL 生成 CSV 文件格式,並使用 Razor 類似地下載。 這使得建立報告和其他資料驅動的內容變得簡單,並且可以輕鬆與他人共享。 總體而言,Razor 和 IronXL .NET Core Razor Pages 的結合為網頁開發人員提供了一套強大的工具,讓其可以建立動態、資料驅動的網頁。
2. 先決條件
在 Visual Studio 中使用 Razor 之前,有一些先決條件使用者應該具備。 這裡是一些重要的條件:
- 作為 IronXL 使用者,您需要在計算機系統上安裝 Visual Studio。 您可以從 Microsoft 的官方網站免費下載 Visual Studio Community。
- 您還需要在計算機上安裝 .NET Core SDK。 您可以從 Microsoft 的官方網站下載最新版本的 .NET Core SDK。
- 在開始使用 Razor View 之前,您的網頁開發環境必須設置好。
3. 建立一個新的 Visual Studio 專案
建立一個新的 Visual Studio 專案,請遵循以下步驟:
- 打開 Visual Studio。
-
在開始窗口按"Create a New Project",或在選單欄點擊"File" > "New" > "Project"。
Visual Studio 的開始窗口 -
選擇您想建立的專案型別,要使用 Razor Pages,選擇 ASP.NET Core Web App,然後點擊 Next。
在 Visual Studio 建立新 .NET Core Web App -
新窗口會出現,寫下您的新專案名稱和位置。 然後點擊 Next。
配置新專案 - 現在在新窗口中選擇您的目標框架,檢查 HTTPS 配置選項並點擊 Create。
- 就這樣,您的新 Visual Studio ASP.NET Core Web App 專案被建立。
4. 安裝 IronXL
可以通過多種方式下載和安裝 IronXL 程式庫。
這些是:
- 使用 Visual Studio NuGet 套件。
- 使用 Visual Studio 命令行。
4.1 使用 Visual Studio
安裝 IronXL 程式庫,最簡單的方法是使用 NuGet 套件管理器。 打開管理器,在瀏覽選項卡中搜索 IronXL。 從搜索結果中選擇 IronXL 並進行安裝。
下面的截圖展示了如何在 Visual Studio 中打開 NuGet 套件管理器。
導航到NuGet套件管理器
在搜尋結果中IronXL:
在 NuGet 套件管理器 UI 中搜尋 IronXL
4.2 使用 Visual Studio 命令行
使用控制台來執行操作是許多人的熱門選擇。 如果您更願意通過命令行安裝 IronXL,您可以按照以下步驟進行:
- 在 Visual Studio 中,轉到工具 > NuGet 套件管理器 > 套件管理器控制台。
- 在套件管理器控制台選項卡中輸入以下行,這將安裝包:
Install-Package IronXL.Excel
現在包將會下載/安裝到當前項目,並準備好使用。
在套件管理員控制台中安裝IronXL
5. 在 Razor Net Core 中匯出資料到 Excel 文件
一旦專案建立,一個簡單的 Razor 應用程式介面就被建立。 現在更改介面以匯出到 Excel 匯出。
新建立專案的 Web 介面
通過編輯 index.cshtml 文件在 Pages 目錄中更改上述介面。
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">This will be the combination of Razor and IronXL, together they will Export data to Excel file.</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Export Excel File!</button>
</form>
</div>
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center">
<h1 class="display-4">IronXL Generate Excel File</h1>
<p class="m-5">This will be the combination of Razor and IronXL, together they will Export data to Excel file.</p>
<form method="post" asp-page-handler="Export">
<button class="btn btn-success p-3">Export Excel File!</button>
</form>
</div>
page model ReadOnly Property () As IndexModel
ViewData("Title") = "Home page"
End Property
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div class="text-center"> <h1 class="display-4"> IronXL Generate Excel File</h1> <p class="m-5"> This will be the combination @of Razor @and IronXL, together they will Export data @to Excel file.</p> <form method="post" asp-page-handler="Export"> <button class="btn btn-success p-3"> Export Excel File!</button> </form> </div>
此程式碼將更改首頁介面並新增匯出按鈕。
具有匯出按鈕的新介面
現在在 index.cshtml.cs 文件中建立 OnPostExport 方法並編寫以下程式碼。 該程式碼生成一個工作表,在粗體中寫入列名,並允許設置其他樣式選項,如字體大小和背景顏色。 您可以將其視作從資料庫匯出資料到 Excel 文件的簡單範例。
public FileResult OnPostExport()
{
// Create a new workbook with the Excel file format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new worksheet in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add data and styles to the new worksheet
workSheet["A1"].Value = "Name";
workSheet["B1"].Value = "Email";
workSheet["C1"].Value = "Marks";
workSheet["D1"].Value = "Percentage";
// Set styling for column headers
workSheet["A1:D1"].Style.Font.Bold = true;
// Filling the worksheet with data
workSheet["A2"].Value = "Nick";
workSheet["A3"].Value = "Roy";
workSheet["A4"].Value = "Chris";
workSheet["B2"].Value = "Nick@gmail.com";
workSheet["B3"].Value = "Roy123@gmail.com";
workSheet["B4"].Value = "Chris1999@gmail.com";
workSheet["C2"].Value = "850";
workSheet["C3"].Value = "710";
workSheet["C4"].Value = "990";
workSheet["D2"].Value = "85%";
workSheet["D3"].Value = "71%";
workSheet["D4"].Value = "99%";
// Return the file as an Excel sheet
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
public FileResult OnPostExport()
{
// Create a new workbook with the Excel file format
WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
// Create a new worksheet in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("data");
// Add data and styles to the new worksheet
workSheet["A1"].Value = "Name";
workSheet["B1"].Value = "Email";
workSheet["C1"].Value = "Marks";
workSheet["D1"].Value = "Percentage";
// Set styling for column headers
workSheet["A1:D1"].Style.Font.Bold = true;
// Filling the worksheet with data
workSheet["A2"].Value = "Nick";
workSheet["A3"].Value = "Roy";
workSheet["A4"].Value = "Chris";
workSheet["B2"].Value = "Nick@gmail.com";
workSheet["B3"].Value = "Roy123@gmail.com";
workSheet["B4"].Value = "Chris1999@gmail.com";
workSheet["C2"].Value = "850";
workSheet["C3"].Value = "710";
workSheet["C4"].Value = "990";
workSheet["D2"].Value = "85%";
workSheet["D3"].Value = "71%";
workSheet["D4"].Value = "99%";
// Return the file as an Excel sheet
return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
Public Function OnPostExport() As FileResult
' Create a new workbook with the Excel file format
Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
' Create a new worksheet in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")
' Add data and styles to the new worksheet
workSheet("A1").Value = "Name"
workSheet("B1").Value = "Email"
workSheet("C1").Value = "Marks"
workSheet("D1").Value = "Percentage"
' Set styling for column headers
workSheet("A1:D1").Style.Font.Bold = True
' Filling the worksheet with data
workSheet("A2").Value = "Nick"
workSheet("A3").Value = "Roy"
workSheet("A4").Value = "Chris"
workSheet("B2").Value = "Nick@gmail.com"
workSheet("B3").Value = "Roy123@gmail.com"
workSheet("B4").Value = "Chris1999@gmail.com"
workSheet("C2").Value = "850"
workSheet("C3").Value = "710"
workSheet("C4").Value = "990"
workSheet("D2").Value = "85%"
workSheet("D3").Value = "71%"
workSheet("D4").Value = "99%"
' Return the file as an Excel sheet
Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx")
End Function
上述程式碼將建立一個工作簿並將文件作為 Excel 表格返回。 此方法連結到按鈕,一旦按鈕被點擊,將自動建立並下載 XLSX 匯出文件。
在瀏覽器中匯出 XLSX 文件
匯出的 XLSX 文件中的資料
6. 匯出資料到 CSV 文件
您可以通過在上述程式碼中改變一行來輕鬆匯出 CSV 文字文件。 只需用以下程式碼替換返回文件程式碼,您的 Razor 頁面將返回一個 CSV 文件。
return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
Return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv")
在瀏覽器中匯出 CSV 文件
匯出的 CSV 文件中的資料
7. 結論
在網頁開發中,將資料匯出到 Excel 表和 CSV 文件是常見的任務,並且 Razor 和 IronXL 使其易於完成。 使用 IronXL,開發人員可以輕鬆地建立 Excel 電子表格並將其保存到文件或流。 然後可以使用 Razor 生成包含 Excel 文件連結的動態內容,允許使用者直接從網頁下載它們。 這使得建立報告和其他資料驅動的內容變得簡單,並且可以輕鬆與他人共享。
Razor 和 IronXL .NET Core Razor Pages 的結合為網頁開發人員提供了一套強大的工具,讓其可以建立動態、資料驅動的網頁。 要開始使用 Razor 和 IronXL,需要先安裝 Visual Studio 和 .NET Core SDK。 之後,建立一個新的 Visual Studio 專案,然後安裝 IronXL 程式庫即可輕鬆完成。 最後,通過更改首頁介面和建立 OnPostExport 方法,開發人員可以在幾個簡單步驟中將資料匯出到 Excel 文件中。
要了解更多關於 IronXL、Razor 以及如何匯出資料到 Excel 和 CSV 文件的資訊,請瀏覽以下頁面。
IronXL 可以免費用於非商業開發用途。 可提供免費試用來進行生產測試。 查看定價方案以了解更詳細的價格和授權資訊。
使用者還可以從Iron Suite中受益,這是一個包括IronXL、IronPDF 等五個專業 ASP.NET Core 程式庫的套件。
常見問題
如何使用Razor Pages將資料匯出到Excel?
您可以將IronXL與Razor Pages結合使用來將資料匯出到Excel。首先通過NuGet Package Manager或Visual Studio Command Line安裝IronXL。然後,建立一個新的工作簿和工作表,用資料填充它,並使用Razor將其匯出為Excel檔案。
設定使用Razor將資料匯出到Excel的環境需要哪些步驟?
要設置您的環境,您需要Visual Studio和.NET Core SDK。建立一個新的ASP.NET Core Web App項目,從NuGet安裝IronXL,並修改Razor介面以新增匯出功能。
在.NET應用程式中將資料匯出到CSV檔案的過程是什麼?
要使用IronXL將資料匯出為CSV檔案,修改您的Razor Page程式碼以返回 'text/csv' 格式的檔案。這涉及使用IronXL處理工作表資料並指定CSV為輸出格式。
匯出自Razor Pages的Excel試算表時我可以設計它們嗎?
是的,IronXL允許您在從Razor Pages匯出時對Excel試算表應用樣式。您可以自定義字體、顏色和其他格式元素以增強資料的展示。
IronXL能否用於非商業項目?
IronXL可免費用於非商業開發目的。您還可以使用免費試用版來在生產環境中測試,並且有詳細的定價方案可用於商業用途。
IronXL如何簡化涉及Excel和CSV檔案的Web開發任務?
IronXL通過提供一個強大的API來直接從Razor Pages生成和操作Excel和CSV檔案來簡化Web開發。它消除了對Interop的需求,讓資料匯出任務更加高效且易於實施。
為何開發者會選擇Razor和IronXL來進行資料匯出任務?
開發者選擇Razor和IronXL是因為它們易於使用、靈活且功能強大。它們實現了資料匯出功能與Web應用程式的無縫整合,可以輕鬆共享建立的動態、資料驅動內容。




