使用 IRONXL 如何在Blazor中使用IronXL匯出Excel文件 Jordi Bardia 更新:2026年3月1日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 幾乎所有Blazor Web 應用程式都需要將資料匯出到 Excel,無論是產生銷售報告、庫存清單還是客戶發票。在Blazor Server 應用程式中,如何在不依賴 Microsoft Office 的情況下可靠地完成此操作可能會令人望而卻步。 IronXL讓操作變得簡單:您可以直接從伺服器建立、格式化和下載 Excel 文件,而無需安裝 Office。 本指南將引導您使用IronXL在Blazor中建立一個可用於生產的 Excel 匯出功能—從專案設定和服務設計到進階格式設定和多工作表報表。 如何在Blazor伺服器專案中設定IronXL ? 在編寫任何匯出邏輯之前,您需要將IronXL新增至Blazor Server 專案並配置瀏覽器端下載助理。 建立Blazor伺服器項目 首先在 Visual Studio 2022 或更高版本中建立一個新的Blazor Server 項目,目標框架為.NET 10。專案準備就緒後,透過NuGet程式套件管理器控制台安裝IronXL : Install-Package IronXl.Excel IronXL可與.NET 6 及更高版本搭配使用,因此現有的Blazor專案無需升級框架即可採用它。 其他安裝方法(例如NuGet UI 或 CLI),請參閱IronXL安裝指南。 新增JavaScript下載助手 Blazor Server 在伺服器端運行,因此觸發檔案下載需要一個小的JavaScript橋接程式。 在您的 wwwroot 資料夾中,新增一個名為 excelExport.js 的檔案: window.downloadFileFromStream = async (fileName, contentStreamReference) => { const arrayBuffer = await contentStreamReference.arrayBuffer(); const blob = new Blob([arrayBuffer]); const url = URL.createObjectURL(blob); const anchorElement = document.createElement('a'); anchorElement.href = url; anchorElement.download = fileName ?? 'export.xlsx'; anchorElement.click(); anchorElement.remove(); URL.revokeObjectURL(url); } window.downloadFileFromStream = async (fileName, contentStreamReference) => { const arrayBuffer = await contentStreamReference.arrayBuffer(); const blob = new Blob([arrayBuffer]); const url = URL.createObjectURL(blob); const anchorElement = document.createElement('a'); anchorElement.href = url; anchorElement.download = fileName ?? 'export.xlsx'; anchorElement.click(); anchorElement.remove(); URL.revokeObjectURL(url); } JAVASCRIPT 將此腳本包含在您的 _Host.cshtml 檔案(或.NET 8+ 中的 App.razor)中: <script src="~/excelExport.js"></script> <script src="~/excelExport.js"></script> HTML 此函數將Blazor的位元組流轉換為臨時 blob URL,觸發瀏覽器下載,然後清理 URL 物件以防止記憶體洩漏。 它的設計非常簡潔——繁重的工作都是在伺服器端用 C# 完成的。 立即開始在您的項目中使用 IronXL 並免費試用。 第一步: 免費啟動 如何在 C# 中建立 Excel 匯出服務? 將 Excel 產生與Razor元件分離,可以保持程式碼的可測試性和跨多個頁面的可重複使用性。 下面的範例將IronXL封裝在一個專用的服務類別中。 建置 ExcelExportService 建立一個新檔案 Services/ExcelExportService.cs: using IronXL; using System.IO; using ExportExcel.Models; public class ExcelExportService { public byte[] GenerateSalesReport(List<SalesData> salesData) { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); workbook.Metadata.Author = "Sales Department"; var worksheet = workbook.CreateWorkSheet("Monthly Sales"); // Add column headers worksheet["A1"].Value = "Date"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Quantity"; worksheet["D1"].Value = "Revenue"; worksheet["E1"].Value = "Profit Margin"; // Style the header row var headerRange = worksheet["A1:E1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Populate data rows int row = 2; foreach (var sale in salesData) { worksheet[$"A{row}"].Value = sale.Date.ToString("yyyy-MM-dd"); worksheet[$"B{row}"].Value = sale.Product ?? "Unknown"; worksheet[$"C{row}"].Value = sale.Quantity; worksheet[$"D{row}"].Value = sale.Revenue; worksheet[$"E{row}"].Value = $"=D{row}*0.15"; row++; } worksheet.AutoSizeColumn(0, true); using var ms = workbook.ToStream(); return ms.ToArray(); } } using IronXL; using System.IO; using ExportExcel.Models; public class ExcelExportService { public byte[] GenerateSalesReport(List<SalesData> salesData) { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); workbook.Metadata.Author = "Sales Department"; var worksheet = workbook.CreateWorkSheet("Monthly Sales"); // Add column headers worksheet["A1"].Value = "Date"; worksheet["B1"].Value = "Product"; worksheet["C1"].Value = "Quantity"; worksheet["D1"].Value = "Revenue"; worksheet["E1"].Value = "Profit Margin"; // Style the header row var headerRange = worksheet["A1:E1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#4472C4"; headerRange.Style.Font.Color = "#FFFFFF"; // Populate data rows int row = 2; foreach (var sale in salesData) { worksheet[$"A{row}"].Value = sale.Date.ToString("yyyy-MM-dd"); worksheet[$"B{row}"].Value = sale.Product ?? "Unknown"; worksheet[$"C{row}"].Value = sale.Quantity; worksheet[$"D{row}"].Value = sale.Revenue; worksheet[$"E{row}"].Value = $"=D{row}*0.15"; row++; } worksheet.AutoSizeColumn(0, true); using var ms = workbook.ToStream(); return ms.ToArray(); } } $vbLabelText $csharpLabel 註冊服務 將服務新增至 Program.cs 中的 DI 容器: var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddScoped<ExcelExportService>(); var app = builder.Build(); app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); app.Run(); var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddScoped<ExcelExportService>(); var app = builder.Build(); app.MapBlazorHub(); app.MapFallbackToPage("/_Host"); app.Run(); $vbLabelText $csharpLabel 該服務展示了IronXL 的幾項關鍵功能。 您可以透過一次方法呼叫建立新的工作簿和工作表,套用樣式化的標題,從任何資料來源填入行,並嵌入Excel 公式,例如 =D2*0.15。 AutoSizeColumn 呼叫確保列足夠寬,可以正確顯示其內容,而不管資料長度如何。 如需更多格式選項,請參閱單元格樣式指南。 如何從Blazor元件觸發 Excel 下載? 服務部署完成後,你需要一個Razor元件來呼叫它並將生成的位元組傳遞給瀏覽器。 編寫Razor元件 在 Pages/ExcelExportDashboard.razor 建立頁面: @page "/excel-export" @using ExportExcel.Models @inject ExcelExportService ExcelService @inject IJSRuntime JS <h3>Excel Export Dashboard</h3> <div class="export-section"> <button class="btn btn-primary" @onclick="ExportSalesReport" disabled="@isExporting"> @if (isExporting) { <span>Generating...</span> } else { <span>Export Sales Report</span> } </button> @if (!string.IsNullOrEmpty(errorMessage)) { <div class="alert alert-danger mt-2">@errorMessage</div> } </div> @code { private bool isExporting = false; private string errorMessage = ""; private async Task ExportSalesReport() { try { isExporting = true; errorMessage = ""; var salesData = GetSalesData(); var fileBytes = ExcelService.GenerateSalesReport(salesData); using var stream = new MemoryStream(fileBytes); using var streamRef = new DotNetStreamReference(stream); await JS.InvokeVoidAsync( "downloadFileFromStream", $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx", streamRef ); } catch (Exception) { errorMessage = "Export failed. Please try again."; } finally { isExporting = false; } } private List<SalesData> GetSalesData() { return new List<SalesData> { new() { Date = DateTime.Now, Product = "Widget A", Quantity = 100, Revenue = 5000 }, new() { Date = DateTime.Now.AddDays(-1), Product = "Widget B", Quantity = 75, Revenue = 3750 } }; } } @page "/excel-export" @using ExportExcel.Models @inject ExcelExportService ExcelService @inject IJSRuntime JS <h3>Excel Export Dashboard</h3> <div class="export-section"> <button class="btn btn-primary" @onclick="ExportSalesReport" disabled="@isExporting"> @if (isExporting) { <span>Generating...</span> } else { <span>Export Sales Report</span> } </button> @if (!string.IsNullOrEmpty(errorMessage)) { <div class="alert alert-danger mt-2">@errorMessage</div> } </div> @code { private bool isExporting = false; private string errorMessage = ""; private async Task ExportSalesReport() { try { isExporting = true; errorMessage = ""; var salesData = GetSalesData(); var fileBytes = ExcelService.GenerateSalesReport(salesData); using var stream = new MemoryStream(fileBytes); using var streamRef = new DotNetStreamReference(stream); await JS.InvokeVoidAsync( "downloadFileFromStream", $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx", streamRef ); } catch (Exception) { errorMessage = "Export failed. Please try again."; } finally { isExporting = false; } } private List<SalesData> GetSalesData() { return new List<SalesData> { new() { Date = DateTime.Now, Product = "Widget A", Quantity = 100, Revenue = 5000 }, new() { Date = DateTime.Now.AddDays(-1), Product = "Widget B", Quantity = 75, Revenue = 3750 } }; } } $vbLabelText $csharpLabel 組件的功能 isExporting 標誌會在生成過程中停用按鈕,防止重複請求。 DotNetStreamReference 封裝器能夠有效率地將.NET記憶體流中的二進位資料流傳輸到JavaScript函數,避免使用過大的 base64 字串,從而減少有效負載的大小。帶有時間戳記的檔案名稱(例如 SalesReport_20260228.xlsx)無需額外配置即可保持下載檔案的有序性。 當您在瀏覽器中造訪 /excel-export 時,儀錶板頁面會加載,並帶有一個匯出按鈕: 點擊按鈕後會產生電子表格,瀏覽器會自動下載該檔案: 您可以對 Excel 匯出檔案套用哪些進階格式? 基本資料匯出功能可以滿足許多使用場景,但生產應用通常需要條件格式、多個工作表或資料驗證。 IronXL原生支援所有這些功能。 庫存報告的條件格式 以下服務會將庫存不足的商品以紅色突出顯示——這是倉庫或庫存管理應用程式的常見要求: using IronXL; using ExportExcel.Models; using System.IO; public class InventoryExportService { public byte[] GenerateInventoryReport(List<InventoryItem> items) { var workbook = WorkBook.Create(); var details = workbook.CreateWorkSheet("Inventory Details"); // Column headers details["A1"].Value = "SKU"; details["B1"].Value = "Name"; details["C1"].Value = "Quantity"; details["D1"].Value = "Reorder Level"; details["E1"].Value = "Status"; var headerRange = details["A1:E1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#2E75B6"; headerRange.Style.Font.Color = "#FFFFFF"; for (int i = 0; i < items.Count; i++) { int row = i + 2; var item = items[i]; details[$"A{row}"].Value = item.SKU; details[$"B{row}"].Value = item.Name; details[$"C{row}"].Value = item.Quantity; details[$"D{row}"].Value = item.ReorderLevel; details[$"E{row}"].Value = item.Quantity < item.ReorderLevel ? "Reorder Required" : "OK"; if (item.Quantity < item.ReorderLevel) { // Highlight the entire row for low-stock items details[$"A{row}:E{row}"].Style.BackgroundColor = "#FFB6B6"; details[$"C{row}"].Style.Font.Bold = true; } } details.AutoSizeColumn(0, true); details.AutoSizeColumn(1, true); using var stream = workbook.ToStream(); return stream.ToArray(); } } using IronXL; using ExportExcel.Models; using System.IO; public class InventoryExportService { public byte[] GenerateInventoryReport(List<InventoryItem> items) { var workbook = WorkBook.Create(); var details = workbook.CreateWorkSheet("Inventory Details"); // Column headers details["A1"].Value = "SKU"; details["B1"].Value = "Name"; details["C1"].Value = "Quantity"; details["D1"].Value = "Reorder Level"; details["E1"].Value = "Status"; var headerRange = details["A1:E1"]; headerRange.Style.Font.Bold = true; headerRange.Style.BackgroundColor = "#2E75B6"; headerRange.Style.Font.Color = "#FFFFFF"; for (int i = 0; i < items.Count; i++) { int row = i + 2; var item = items[i]; details[$"A{row}"].Value = item.SKU; details[$"B{row}"].Value = item.Name; details[$"C{row}"].Value = item.Quantity; details[$"D{row}"].Value = item.ReorderLevel; details[$"E{row}"].Value = item.Quantity < item.ReorderLevel ? "Reorder Required" : "OK"; if (item.Quantity < item.ReorderLevel) { // Highlight the entire row for low-stock items details[$"A{row}:E{row}"].Style.BackgroundColor = "#FFB6B6"; details[$"C{row}"].Style.Font.Bold = true; } } details.AutoSizeColumn(0, true); details.AutoSizeColumn(1, true); using var stream = workbook.ToStream(); return stream.ToArray(); } } $vbLabelText $csharpLabel IronXL會在產生資料時根據資料值套用儲存格等級的格式設定。您也可以以聲明方式套用條件格式規則,或在同一工作簿中管理多個工作表-例如,一個工作表用於顯示目前庫存,另一個工作表用於顯示歷史訂單。 將多個工作表新增至單一匯出檔案中 將資料分成邏輯表格可以提高可讀性,而無需單獨下載: public byte[] GenerateMultiSheetReport( List<SalesData> sales, List<InventoryItem> inventory) { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Sheet 1 -- Sales summary var salesSheet = workbook.CreateWorkSheet("Sales"); salesSheet["A1"].Value = "Date"; salesSheet["B1"].Value = "Revenue"; salesSheet["A1:B1"].Style.Font.Bold = true; for (int i = 0; i < sales.Count; i++) { salesSheet[$"A{i + 2}"].Value = sales[i].Date.ToString("yyyy-MM-dd"); salesSheet[$"B{i + 2}"].Value = sales[i].Revenue; } // Sheet 2 -- Inventory snapshot var invSheet = workbook.CreateWorkSheet("Inventory"); invSheet["A1"].Value = "SKU"; invSheet["B1"].Value = "Name"; invSheet["C1"].Value = "Quantity"; invSheet["A1:C1"].Style.Font.Bold = true; for (int i = 0; i < inventory.Count; i++) { invSheet[$"A{i + 2}"].Value = inventory[i].SKU; invSheet[$"B{i + 2}"].Value = inventory[i].Name; invSheet[$"C{i + 2}"].Value = inventory[i].Quantity; } using var stream = workbook.ToStream(); return stream.ToArray(); } public byte[] GenerateMultiSheetReport( List<SalesData> sales, List<InventoryItem> inventory) { var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Sheet 1 -- Sales summary var salesSheet = workbook.CreateWorkSheet("Sales"); salesSheet["A1"].Value = "Date"; salesSheet["B1"].Value = "Revenue"; salesSheet["A1:B1"].Style.Font.Bold = true; for (int i = 0; i < sales.Count; i++) { salesSheet[$"A{i + 2}"].Value = sales[i].Date.ToString("yyyy-MM-dd"); salesSheet[$"B{i + 2}"].Value = sales[i].Revenue; } // Sheet 2 -- Inventory snapshot var invSheet = workbook.CreateWorkSheet("Inventory"); invSheet["A1"].Value = "SKU"; invSheet["B1"].Value = "Name"; invSheet["C1"].Value = "Quantity"; invSheet["A1:C1"].Style.Font.Bold = true; for (int i = 0; i < inventory.Count; i++) { invSheet[$"A{i + 2}"].Value = inventory[i].SKU; invSheet[$"B{i + 2}"].Value = inventory[i].Name; invSheet[$"C{i + 2}"].Value = inventory[i].Quantity; } using var stream = workbook.ToStream(); return stream.ToArray(); } $vbLabelText $csharpLabel 有關涵蓋工作簿屬性、範圍操作和圖表支援的完整 API 參考,請造訪IronXL API 文件。 Blazor匯出到Excel:使用C#中的IronXL的完整指南:圖3 - 進階功能範例輸出 如何有效率地處理錯誤和大型資料集? 當資料集很大時,Excel匯出操作可能會靜默失敗或降低效能。 以下模式可以解決這兩個問題。 服務層中的錯誤處理 將產生邏輯封裝在服務(而不是元件)中,可以確保所有呼叫者的錯誤處理保持一致。 建議的做法是讓IronXL異常傳播,然後將其包裝在特定領域的異常中,並包含有關哪個報告失敗的上下文: 在 @@--CODE-501--CODE-500 中,圍繞工作簿產生放置一個 @@--CODE-500--CODE-501 區塊,捕獲 @@--CODE-502--CODE-502 並重新拋出 @@--CODE-503--CODE-503 錯誤。 在Blazor組件中,捕獲 InvalidOperationException 並顯示用戶友好的訊息,而不暴露內部細節。 使用注入到服務建構函數中的 ILogger<t> 記錄內部異常,以便開發團隊能夠將故障追溯到特定的工作簿操作。 永遠不要向最終用戶顯示原始異常訊息——檔案路徑、記憶體位址或堆疊追蹤可能會洩露伺服器內部資訊。 有關Blazor中結構化錯誤日誌記錄的指導,請參閱 Microsoft 官方文件中的錯誤處理最佳實務。 有關在.NET中建立可測試服務的更多指導, Microsoft 依賴注入文件解釋瞭如何註冊和解析作用域服務,這正是此處使用的模式 ExcelExportService。 大型資料集的效能考量 對於超過幾千行的資料集,可以考慮以下方法: Excel匯出效能策略 策略 何時使用 IronXL支援 直接串流響應 Files >10 MB `workbook.ToStream()` 匯出前先將資料分頁 帶有篩選器的 UI 驅動匯出 在創建工作簿之前申請服務 背景工作 + 下載鏈接 Reports taking >5 seconds 結合 SignalR 或輪詢方式 在大工作表上停用自動調整列寬 Sheets with >500 rows 設定固定列寬 IronXL 的 ToStream() 方法直接寫入輸出流,而無需先將整個檔案載入到位元組陣列中,這樣可以降低大型工作簿的記憶體使用量。 如需更多效能指導,請參閱使用IronXL讀取和寫入大型 Excel 檔案。 IronXL還支援哪些 Excel 功能? 除了基本的匯出功能外, IronXL還提供了一系列 Excel 功能,可滿足實際的報告需求。 公式、命名區域和數字格式設置 您可以使用與直接在儲存格中輸入相同的語法嵌入任何 Excel 公式。 IronXL在讀取時計算公式,因此產生檔案的使用者在開啟電子表格後即可看到計算結果。 命名範圍使公式更易讀、更易於維護: // Aggregate formulas on a summary row worksheet["E2"].Value = "=SUM(D2:D100)"; worksheet["F2"].Value = "=AVERAGE(C2:C100)"; worksheet["G2"].Value = "=COUNTIF(B2:B100,\"Widget A\")"; // Named ranges improve formula readability worksheet["D2:D100"].Name = "RevenueColumn"; worksheet["E2"].Value = "=SUM(RevenueColumn)"; // Number and date formatting prevents type misinterpretation worksheet["D2"].Value = 12345.67m; worksheet["D2"].FormatString = "#,##0.00"; worksheet["A2"].Value = DateTime.Now; worksheet["A2"].FormatString = "dd/MM/yyyy"; // Aggregate formulas on a summary row worksheet["E2"].Value = "=SUM(D2:D100)"; worksheet["F2"].Value = "=AVERAGE(C2:C100)"; worksheet["G2"].Value = "=COUNTIF(B2:B100,\"Widget A\")"; // Named ranges improve formula readability worksheet["D2:D100"].Name = "RevenueColumn"; worksheet["E2"].Value = "=SUM(RevenueColumn)"; // Number and date formatting prevents type misinterpretation worksheet["D2"].Value = 12345.67m; worksheet["D2"].FormatString = "#,##0.00"; worksheet["A2"].Value = DateTime.Now; worksheet["A2"].FormatString = "dd/MM/yyyy"; $vbLabelText $csharpLabel 為了定義命名範圍並明確設定數字格式, IronXL將兩者都作為範圍物件的屬性公開。 這樣可以防止 Excel 將貨幣值視為純文字——這是從以字串形式儲存值的資料庫匯出財務資料時常見的問題。 支援的Excel檔案格式 IronXL可以讀取和寫入多種 Excel 格式,包括 .csv 和 .tsv。 格式在儲存時確定,因此同一個服務類別只需稍作參數變更即可支援 Excel 和 CSV 匯出: // Export as CSV for systems that consume flat files workbook.SaveAs("report.csv"); // Or stream as CSV for download using var ms = workbook.ToStream(ExcelFileFormat.CSV); // Export as CSV for systems that consume flat files workbook.SaveAs("report.csv"); // Or stream as CSV for download using var ms = workbook.ToStream(ExcelFileFormat.CSV); $vbLabelText $csharpLabel 這種靈活性在整合過程中非常重要,因為下游系統(如 ERP 平台或資料倉儲)需要特定的文件格式。 若要全面比較IronXL和其他 Excel 庫的功能,請造訪IronXL功能頁面。 如果您在偵錯意外輸出時需要了解 .xlsx 檔案的內部結構,Microsoft 提供了一個很好的參考資料來理解 OOXML 檔案格式。 IronXL的NuGet套件也已在NuGet上列出,並附有完整的版本歷史記錄和相容性說明。 如何開始使用IronXL進行Blazor專案? IronXL提供免費的開發許可,您可以不受任何時間限制地進行建置和測試。 生產環境應用需要部署許可證。 您可以直接從NuGet下載免費試用版—無需註冊即可開始使用。 準備部署時,請查看IronXL授權選項,找到適合應用程式規模的方案。 IronXL適用於所有主流的.NET應用程式類型,包括Blazor Server、 Blazor WebAssembly(伺服器端渲染)、 ASP.NET Core MVC、控制台應用程式和 Windows 桌面應用程式。該程式庫面向.NET Standard 2.0,因此相容於從.NET Framework 4.6.2 到.NET 10 的所有支援.NET版本。如果專案還需要產生 PDF 文件, IronPDF可以與IronXL無縫集成,讓您可以從相同服務層將資料匯出為 Excel 或 PDF 格式。 若要了解更多 Blazor 特定範例,請參閱Blazor Excel 匯出教學課程和ASP.NET Core匯出指南。 對於讀取現有電子表格, C# Excel 讀取器教學涵蓋了常見的匯入場景。 您還可以了解如何從頭開始建立新的 Excel 工作簿,以用於需要以程式設計方式而不是從範本建立文件的項目。 常見問題解答 如何在 Blazor Server 應用程式中將資料匯出至 Excel? 您可以在 Blazor Server 應用程式中使用 IronXL 將資料匯出至 Excel。IronXL 讓您無需 Microsoft Office,即可直接在伺服器上建立、格式化並下載 Excel 檔案。 在 Blazor 中使用 IronXL 需要安裝 Microsoft Office 嗎? 不需要,您無需安裝 Microsoft Office。IronXL 讓您能在 Blazor Server 應用程式中處理 Excel 檔案,無需依賴 Microsoft Office。 我可以在 Blazor 應用程式中使用 IronXL 格式化 Excel 檔案嗎? 是的,IronXL 提供用於格式化 Excel 檔案的工具,讓您能直接從 Blazor Server 應用程式自訂資料的外觀。 IronXL 是否與 Blazor Server 應用程式相容? 是的,IronXL 可與 Blazor Server 應用程式無縫整合,便於匯出及處理 Excel 檔案。 在 Blazor 中使用 IronXL 進行 Excel 匯出的好處是什麼? IronXL 提供了一種無需 Office 即可建立與處理 Excel 檔案的簡便方法,使其成為 Blazor 應用程式中匯出資料的高效解決方案。 IronXL 能否在 Blazor Server 應用程式中處理大型 Excel 檔案? 是的,IronXL 專為在 Blazor Server 應用程式中高效處理大型 Excel 檔案而設計。 在 Blazor 應用程式中,我可以使用 IronXL 建立哪些類型的 Excel 檔案? 透過 IronXL,您可以在 Blazor 應用程式中直接建立各種類型的 Excel 檔案,包括 XLSX、XLS 和 CSV。 是否可以使用 IronXL 從 Blazor Server 應用程式下載 Excel 檔案? 是的,IronXL 支援直接從 Blazor Server 應用程式下載 Excel 檔案,為終端使用者提供無縫的體驗。 相較於其他解決方案,IronXL 如何提升 Blazor 中的 Excel 匯出功能? IronXL 透過免除對 Microsoft Office 的依賴,並直接與您的伺服器應用程式整合,簡化了在 Blazor 中匯出 Excel 檔案的流程。 為何 IronXL 是 Blazor 開發者的理想選擇? IronXL 是 Blazor 開發者的理想選擇,因為它具備強大的 Excel 處理能力、無需安裝 Office,且能輕鬆整合至 Blazor Server 應用程式中。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多 更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多 更新2026年3月1日 如何使用IronXL在C#中生成Excel文件 學習如何使用IronXL在C#中生成Excel文件,涵蓋基本試算表創建、格式化、公式和資料庫整合,無需Office依賴。 閱讀更多 如何不使用Interop在Excel中創建樞紐分析表如何在C#中而不是使用Stream...
更新2026年3月1日 在ASP.NET C#中下載Excel文件:將數據匯出到XLSX,CSV和更多格式 使用C#和IronXL在ASP.NET Core中下載Excel文件。從MVC控制器中匯出數據到XLSX, CSV和XML,附有MemoryStream和File()返回。包括代碼範例。 閱讀更多
更新2026年2月27日 如何在C#中而不是使用StreamReader來讀取Excel文件 了解StreamReader為何無法讀取Excel文件,並學習如何使用IronXL加載來自磁盤或內存流的XLSX和XLS工作簿。 閱讀更多
更新2026年3月1日 如何使用IronXL在C#中生成Excel文件 學習如何使用IronXL在C#中生成Excel文件,涵蓋基本試算表創建、格式化、公式和資料庫整合,無需Office依賴。 閱讀更多