使用 IRONXL 如何在 Blazor 中導出到 CSV Jordi Bardia 更新日期:6月 22, 2025 Download IronXL NuGet 下載 DLL 下載 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 今天,我們將深入探討如何使用 Blazor 和 IronXL 將 Excel 文件轉換為 CSV 格式。 在本教程結束時,您將能夠創建一個基本的 Blazor 應用程序,將 Excel 數據導出為各種格式,包括 CSV。 IronXL 簡介 IronXL is a powerful .NET Excel library designed to work with Excel files in a wide range of formats, including XLS, XLSX, XLSM, XLTX, and CSV. It allows developers to read, write, and manipulate Excel data programmatically without the need for Microsoft Office or Excel Interop. 借助 IronXL,您可以創建、加載和保存 Excel 工作簿,並讀寫單個單元格或範圍中的數據。 It also supports advanced features such as formatting, formulas, charts, and pivot tables. IronXL 與各種 .NET 框架兼容,並可與 C# 和 VB.NET 等流行語言一起使用。 將 Excel 文件轉換為 CSV 的步驟 設定您的 Blazor 專案 要開始,您需要創建一個新的 Blazor 伺服器專案。 打開 Visual Studio,創建一個新專案並選擇 "Blazor 伺服器應用" 模板。 命名您的專案,然後點擊 "創建"。 創建專案後,打開 Pages 資料夾,找到 Index.razor 文件。這是添加並編碼 Blazor 組件以處理文件上傳和轉換的地方。 安裝 IronXL 在開始編寫代碼之前,有必要安裝 IronXL 庫。 在 Visual Studio 中打開 Package Manager Console 並運行以下命令: Install-Package IronXL.Excel 此命令將在您的 Blazor 專案中安裝 IronXL 庫。 現在您可以開始編寫代碼了! 創建文件上傳組件 首先,創建一個基本的文件上傳組件,允許用戶上傳現有的 Excel 文件。然後,從 Microsoft.AspNetCore.Components.Forms 命名空間添加 InputFile 組件。 將以下代碼添加到您的 Index.razor 文件的 "@page """ 行下方: @using Microsoft.AspNetCore.Components.Forms @using IronXL @using System.IO @using System.Threading.Tasks <div class="container"> <h3>File Upload</h3> <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> <h3>Selected File: @originalFileName</h3> <h3 style="color:bisque">Is File converted: <span>@message</span></h3> </div> 此代碼設置了文件上傳組件,包含一個按鈕和一個用於顯示文件轉換狀態的消息區。 InputFile 組件上的 accept 屬性指定了被接受的文件格式。 編寫文件轉換代碼 現在,讓我們來撰寫處理文件上傳和轉換的代碼。 將使用 IronXL、Blazor 和 C# 的組合來完成這項任務。 您可以使用 IronXL 將 CSV 轉換為 Excel 文件。 將以下代碼添加到您先前添加的 div 元素下方的 Index.razor 文件中。 @code { private string originalFileName; private string message = ""; private async Task OnInputFileChange(InputFileChangeEventArgs e) { var file = e.File; originalFileName = file.Name; try { // Read the uploaded file into a memory stream using var memoryStream = new MemoryStream(); await file.OpenReadStream().CopyToAsync(memoryStream); // Load the workbook using IronXL WorkBook workBook = WorkBook.Load(memoryStream); // Save the workbook as a CSV file string outputPath = "sample.csv"; workBook.SaveAsCsv(outputPath); message = "Conversion completed!"; } catch (Exception ex) { message = $"An error occurred: {ex.Message}"; } } } 此代碼定義了一個私有方法 OnInputFileChange,當使用 InputFile 組件上傳 Excel 試算表時將觸發該方法; Excel 可以是 XLS 或 XLSX 格式。 此代碼讀取上傳的基本 Excel 文件,將其加載到一個 WorkBook 對象中,然後將 WorkBook 保存為 CSV 文件。轉換的狀態顯示在頁面上的消息區中。 代碼分解 首先,查看完整代碼: @page "/" @using Microsoft.AspNetCore.Components.Forms @using IronXL @using System.IO @using System.Threading.Tasks <style> body{ background-color: skyblue } .container { max-width: 800px; margin: 0 auto; font-family: Arial, sans-serif; } h3 { margin-top: 30px; font-size: 30px; margin-bottom: 30px; } .button { background-color: #4CAF50; border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 15px 0; cursor: pointer; } span { font-size: 20px; } </style> <div class="container"> <h3>File Upload</h3> <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> <h3>Selected File: @originalFileName</h3> <h3 style="color:bisque">Is File converted: <span>@message</span></h3> </div> @code { private string originalFileName; private string message = ""; private async Task OnInputFileChange(InputFileChangeEventArgs e) { var file = e.File; originalFileName = file.Name; try { // Read the uploaded file into a memory stream using var memoryStream = new MemoryStream(); await file.OpenReadStream().CopyToAsync(memoryStream); // Load the workbook using IronXL WorkBook workBook = WorkBook.Load(memoryStream); // Save the workbook as a CSV file string outputPath = "sample.csv"; workBook.SaveAsCsv(outputPath); message = "Conversion completed!"; } catch (Exception ex) { message = $"An error occurred: {ex.Message}"; } } } 讓我們進一步分解代碼: 當上傳文件時,觸發 OnInputFileChange 方法,並傳遞給它一個 InputFileChangeEventArgs 對象。 此對象包含有關已上傳文件的信息,如其名稱和大小。 將原始文件名儲存在名為 originalFileName 的變量中,以在頁面上顯示。 在 try-catch 塊中,創建一個新的 MemoryStream 對象來讀取上傳文件的內容。 using 語句確保一旦不再需要內存流,它就會被正確釋放。 使用 await 關鍵字異步將上傳文件的內容複製到內存流中。 這確保應用在閱讀文件時保持響應。 接下來,使用 WorkBook.Load 方法將內存流的內容加載到一個 WorkBook 對象中。 此對象表示整個 Excel 工作簿,包括其工作表、單元格和數據。 然後為轉換的 CSV 指定一個輸出文件名。在此情況下,我們使用名稱 "sample.csv"。 然後使用 SaveAsCsv 方法的 WorkBook 對象將工作簿保存為具有指定輸出文件名的 CSV 文件。 如果轉換成功,則顯示一條消息以表示轉換已完成。 如果出現錯誤,則捕獲異常並顯示錯誤消息。 測試應用程序 現在 Blazor 應用程序完成,可以測試它了! 按 F5 以在 Visual Studio 中運行您的應用程序。 運行應用程序後,您應該在頁面上看到一個文件上傳按鈕。 運行 Blazor 應用程序 點擊按鈕,並選擇要上傳的 Excel 文件。 接受的文件格式已在 InputFile 組件的 accept 屬性中列出。 選擇 Excel 文件 選擇文件後,應用程序會讀取文件,使用 IronXL 將其轉換為 CSV 格式,並保存轉換後的文件並帶有指定的輸出文件名。 您應該會看到一條消息,顯示轉換的狀態以及原始文件名。 轉換狀態 恭喜! 您已經成功構建了一個 Blazor 應用程序,可以使用 IronXL 將 Excel 文件導出為 CSV 格式。 以下截圖顯示了上述程序的輸出。 輸出 Excel 文件 結論 本教程展示了如何構建一個 Blazor 應用程序,可以使用 IronXL 將 Excel 文件導出為 CSV 格式。 我們演示了如何創建一個文件上傳組件、處理文件上傳以及使用 IronXL 的強大功能將 Excel 文件轉換為 CSV 格式。 通過將 IronXL 集成到您的 Blazor 應用程序中,您可以輕鬆處理各種 Excel 相關的任務,如導入、操作和導出數據。 這為您的項目拓寬了可能性,幫助您為用戶提供更豐富的體驗。 您可以在 Blazor 中使用 IronXL 庫將 CSV 轉換為 Excel。 IronXL 提供 免費試用,允許您在購買前測試其功能和能力。 試用期後,IronXL 的許可證起價為 $799。 常見問題解答 如何在 Blazor 應用程式中將 Excel 文件轉換為 CSV 格式? 在 Blazor 應用程式中,您可以使用 IronXL 將 Excel 文件轉換為 CSV 格式。首先,設置 Blazor 服務器項目,通過套件管理器控制台安裝 IronXL,並使用 `InputFile` 元件創建一個文件上傳元件。然後,將 Excel 文件讀入內存流,使用 IronXL 將其載入到 WorkBook 對象中,並使用 SaveAsCsv 方法將其匯出為 CSV。 在 Blazor 應用程式中使用 IronXL 的目的為何? IronXL 在 Blazor 應用程式中被使用以便在無需 Microsoft Office 或 Excel Interop 的情況下處理 Excel 數據。它允許開發人員以程序化的方式讀取、操作和匯出 Excel 數據,實現進口數據、格式化和將 Excel 文件轉換為像 CSV 樣的格式。 我能否測試我的 Blazor 應用程式以進行 Excel 到 CSV 的轉換? 是的,您可以通過在 Visual Studio 中運行您的 Blazor 應用程式來測試。使用文件上傳元件選擇一個 Excel 文件,應用程式將使用 IronXL 將選擇的文件轉換為 CSV,並提供轉換狀態的反饋。 使用 IronXL 代替 Excel Interop 有哪些優勢? 使用 IronXL 代替 Excel Interop 提供了多種優勢,包括無需安裝 Microsoft Office 即可操作 Excel 文件,支持多種 Excel 格式(XLS、XLSX、CSV),以及與 .NET 應用程式的兼容性,增強了性能和部署的便利。 如何在我的 Blazor 項目中安裝 IronXL? 要在 Blazor 項目中安裝 IronXL,請在 Visual Studio 中打開套件管理器控制台並運行命令:Install-Package IronXL.Excel。這將安裝該庫,讓您可以程序化處理 Excel 文件。 IronXL 支持哪些 Excel 文件格式在 Blazor 中進行轉換? IronXL 支持多種 Excel 文件格式在 Blazor 中進行轉換,包括 .xls、.xlsx、.xlsm、.xltx 和 .csv,允許靈活地處理應用程序中的 Excel 數據。 如何在 Blazor 應用程式中創建文件上傳元件? 要在 Blazor 應用程式中創建文件上傳元件,可使用來自 Microsoft.AspNetCore.Components.Forms 命名空間的 `InputFile` 元件。此元件允許用戶上傳文件,然後可使用 IronXL 處理它們以執行諸如 Excel 到 CSV 的轉換工作。 IronXL 有免費試用版嗎? 是的,IronXL 提供免費試用版,讓您可以在購買前探索其功能和能力。在試用期結束後,您可以根據項目的需求選擇各種許可證選項。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 10月 27, 2025 如何在 C# 中創建 Excel 樞紐分析表 學習使用 C# Interop 和 IronXL 創建 Excel 中的樞紐分析表,這是一個清晰的分步指南。 閱讀更多 發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多 發表日期 10月 27, 2025 如何使用 IronXL 的 .NET Core CSV 讀取器 學習使用 IronXL 作為 .NET Core CSV 讀取器的有效方法,提供實用範例。 閱讀更多 如何在 C# 中將 Excel 轉換為 DataGridView如何在 C# 中將 Excel 轉換為...
發表日期 10月 27, 2025 如何在 C# 中將 DataGridView 匯出為 Excel 並保留列標題 學習如何在 C# 教程中使用 IronXL library 將 DataGridView 資料匯出為 Excel 同時保留列標題。分步教學。 閱讀更多