與其他組件的比較 IronXL 與 CsvWriter 的比較 Jordi Bardia 更新:2025年8月20日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 使用CSV檔案可能是一項具有挑戰性的任務。 然而,今天有許多可用的程式庫可以幫助開發者完成這項任務,並無需安裝Microsoft Excel。 在本文中,我們將討論和比較如何在C# .NET技術中以程式方式處理Microsoft Excel文件,不論是CSV格式或標準的Excel格式,使用兩個最受歡迎的程式庫:IronXL和CSVWriter。 首先讓我們看看兩個程式庫各自提供了什麼。 IronXL 程式庫 IronXL是一個.NET程式庫,可協助使用C#讀取和編輯Microsoft Excel文件。 IronXl.Excel是一個獨立的.NET軟體程式庫,用於讀取各種電子表格格式。 它不需要安裝Microsoft Excel,也不依賴於Interop。 IronXL是一個直觀的C# API,使您能以極快的速度在.NET中讀取、編輯和建立Excel試算表文件。 IronXL完全支持.NET Core、.NET Framework、Xamarin、Mobile、Linux、macOS和Azure。 IronXL是一款領先的.NET core和.net framework的Excel試算表庫,用於C#。 IronXL 功能集 加載、讀取和編輯數據 — 從XLS/XLSX/CSV/TSV匯入 保存和匯出 — 到XLS/XLSX/CSV/TSV/JSON 範圍— 使用簡單的WorkSheet ["A1:B10"]語法。 直觀地組合和創建範圍。 排序 — 排列範圍、列和行。 樣式— 單元格視覺樣式、字型、大小、背景樣式、邊框、對齊和數字格式。 CSVWriter 一個用於寫入CSV文件的.NET程式庫。 非常快、靈活且易於使用。 支援寫入自定義類別對象。 CsvWriter的功能 快速:即時編譯類以獲得極快速的性能 靈活:寫入時保守,閱讀時自由 易於使用:讀取和寫入僅需如WriteRecords(records)般簡單 高度可配置 支持Linux模式 低內存使用 1. 創建控制台應用程序 使用以下步驟創建控制台應用程序: 啟動Visual Studio 2022 IDE。 點擊"創建新專案"。 在"創建新專案"頁面中,從語言下拉列表選擇C#,從平台列表中選擇Windows,從"專案類型"列表中選擇控臺。 從顯示的專案模板中選擇控臺應用程式 (.NET Framework)。 *創建專案 - 控制台應用程序* 點擊下一步。 在附加資訊畫面中指定您要使用的Framework版本。 在本示例中,我們將使用.NET Framework 4.8。 *創建專案 - .NET Framework* 點擊創建來完成過程。 專案現已創建,我們幾乎準備好測試這些程式庫。 然而,我們仍然需要安裝並整合它們到我們的專案中。 讓我們先安裝IronXL。 2. IronXL C# 程式庫安裝 您可以使用以下方法下載並安裝IronXL程式庫: 使用Visual Studio安裝NuGet套件 直接下載NuGet套件 手動安裝DLL 讓我們來看一下每一種方法。 2.1. 使用Visual Studio安裝NuGet套件 Visual Studio提供了NuGet套件管理器來安裝您專案中的NuGet套件。 您可以通過專案菜單或在方案資源管理器中右擊您的專案來訪問它。 *選擇-管理-NuGet-套件* 現在,從瀏覽選項卡 -> 搜尋IronXl.Excel -> 安裝 *搜尋IronXL* 我們完成了。 2.2. 直接下載NuGet套件 這可以通過直接訪問NuGet網站並下載套件來完成。 步驟如下: Navigate tohttps://www.nuget.org/packages/IronXl.Excel 選擇"下載套件" 雙擊下載的套件 套件將被安裝 重新加載您的Visual Studio專案並開始使用它 2.3. 使用DLL手動安裝 下載並安裝IronXL C#程式庫的另一種方式是通過開發者命令提示符使用以下步驟安裝IronXL NuGet包。 打開 開發者命令提示符— 通常在Visual Studio資料夾中找到。 輸入以下指令: Install-Package IronXl.Excel 按Enter鍵 這將下載並安裝包 重新加載您的Visual Studio專案並開始使用它 2.4. 添加必要的using指示符 在解決方案總管中,右鍵單擊Program.cs文件,然後點擊查看代碼。 在代碼文件頂部添加以下using指令: using IronXL; using IronXL; $vbLabelText $csharpLabel 全部完成! IronXL已下載、安裝並準備好使用。 然而,在此之前,我們應該安裝CsvHelper。 3. CSVWriter的安裝 3.1. 使用NuGet套件管理器主控台 要使用CSVWriter,你需要下載安裝CsvHelper C#程式庫。 要完成此操作,請通過開發者命令提示符完成以下步驟安裝NuGet包。 打開 開發者命令提示符— 通常在Visual Studio資料夾中找到。 輸入以下指令: Install-Package CsvHelper -Version 27.2.1 按Enter鍵 這將下載並安裝包 重新加載您的Visual Studio專案並開始使用它 查看CsvHelper.CsvWriter方法詳細信息以實現 3.2. 直接下載 Download from the NuGet website: https://www.nuget.org/packages/CsvHelper/ 4. 使用IronXL處理CSV文件 逗號分隔值(CSV)文件是一種使用逗號分隔值的分隔文本文件。 文件的每一行都是一條數據記錄。 為計算而操控這些文件可能是一項具有挑戰性的任務,但IronXL提供了一個相當不錯且簡單的選擇來實現此目標,且無需使用Microsoft Excel。 首先讓我們將CSV檔案轉換為正常的Excel檔案。 4.1.將CSV檔案轉換為Excel格式 這個過程相當簡單和容易。 通常只需一行代碼即可完成。 CSV到Excel格式: // Load the CSV file and specify the format and delimiter WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); // Load the CSV file and specify the format and delimiter WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Get the default worksheet WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook as an Excel file workbook.SaveAs("CsvToExcelConversion.xlsx"); $vbLabelText $csharpLabel 4.2. 使用IronXL閱讀和操作轉換後的CSV檔案 IronXLWorkBook類代表了一個Excel工作表。 要使用C#開啟Excel文件,我們使用WorkBook.Load並指定Excel文件(.xlsx)的路徑。 以下一行代碼用於打開文件以進行讀取: // Load WorkBook var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx"); // Load WorkBook var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx"); $vbLabelText $csharpLabel 每個WorkBook可以包含多個WorkSheet對象。 這些表示Excel文件中的工作表。 如果工作簿包含工作表,則按名稱檢索它們,如下所示: // Open Sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); // Open Sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); $vbLabelText $csharpLabel 讀取單元格值的代碼: // Read from Ranges of cells elegantly. foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } // Read from Ranges of cells elegantly. foreach (var cell in worksheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } $vbLabelText $csharpLabel 在加載並讀取工作簿和工作表後,可以使用以下代碼範例進行公式更改或應用特定單元格公式。 代碼如下: // Set Formulas worksheet["A1"].Formula = "Sum(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "Max(C3:C7)"; // Force recalculate all formula values in all sheets. workbook.EvaluateAll(); // Set Formulas worksheet["A1"].Formula = "Sum(B8:C12)"; worksheet["B8"].Formula = "=C9/C11"; worksheet["G30"].Formula = "Max(C3:C7)"; // Force recalculate all formula values in all sheets. workbook.EvaluateAll(); $vbLabelText $csharpLabel 4.3.將Excel文件保存回CSV文件 使用IronXL寫CSV文件是一個簡單的過程。 以下代碼簡單地使用SaveAsCsv方法將Excel文件儲存為CSV格式。 // Load the workbook WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx"); // Save as .csv file wb.SaveAsCsv("SaveAsCSV.csv", ","); // Saved as : SaveAsCSV.Sheet1.csv // Load the workbook WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx"); // Save as .csv file wb.SaveAsCsv("SaveAsCSV.csv", ","); // Saved as : SaveAsCSV.Sheet1.csv $vbLabelText $csharpLabel 5. 使用CSVWriter處理CSV數據 向CSV文件寫入數據是一項常見操作。 CSVHelper CSVWriter方法與提供的分隔符在C#中非常簡單的CSV寫入器中處理所有字符和換行符。 在這裡,我們將看看如何使用CSVWriter寫入數據。 5.1. 創建一個簡單的控臺應用程式 使用Visual Studio創建一個簡單的CSVWriter與提供的分隔符控臺應用程式。 一旦專案創建完成,下一步是創建一個Person類: public class Person { public int Id { get; set; } public string Name { get; set; } public bool IsLiving { get; set; } } public class Person { public int Id { get; set; } public string Name { get; set; } public bool IsLiving { get; set; } } $vbLabelText $csharpLabel 在Main方法內,現在讓我們創建一個Person對象列表,我們將其寫入CSV文件: var myPersonObjects = new List<Person>() { new Person { Id = 1, IsLiving = true, Name = "John" }, new Person { Id = 2, IsLiving = true, Name = "Steve" }, new Person { Id = 3, IsLiving = true, Name = "James" } }; var myPersonObjects = new List<Person>() { new Person { Id = 1, IsLiving = true, Name = "John" }, new Person { Id = 2, IsLiving = true, Name = "Steve" }, new Person { Id = 3, IsLiving = true, Name = "James" } }; $vbLabelText $csharpLabel 5.2. 使用預設設定在C#中寫入CSV文件 CsvHelper已成為使用CSVWriter方法在C#中撰寫CSV的標準方式,並且非常易於使用: using (var writer = new StreamWriter("filePersons.csv")) using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.WriteRecords(myPersonObjects); } using (var writer = new StreamWriter("filePersons.csv")) using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.WriteRecords(myPersonObjects); } $vbLabelText $csharpLabel 5.3. 附加數據 我們需要記住,每次運行程式時,舊的CSV文件將被覆寫。 有時我們希望數據附加到文件的末尾,而不是覆蓋現有數據。 CSVWriter不提供這樣的功能,因為開啟/寫入文件的責任不屬於提供的分隔符的CSVWriter。 我們可以通過使用FileStream來實現,然後通過該FileStream構造我們的StreamWriter。 雖然這不在本文的範圍內,但我將向您展示如何做到這一點,因為它是任何應用程式的重要組成部分。 var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = false }; using (var stream = File.Open("filePersons.csv", FileMode.Append)) using (var writer = new StreamWriter(stream)) using (var csv = new CsvWriter(writer, configPersons)) { csv.WriteRecords(myPersonObjects); } var configPersons = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = false }; using (var stream = File.Open("filePersons.csv", FileMode.Append)) using (var writer = new StreamWriter(stream)) using (var csv = new CsvWriter(writer, configPersons)) { csv.WriteRecords(myPersonObjects); } $vbLabelText $csharpLabel 附加到現有文件是棘手的,因為在我們追加時順序可能會改變,或者我們可能添加了新屬性。 我們應確保在附加時考慮到這一點。 6. 授權 IronXL is an openly commercial C# Excel library. It is free for development and can always be licensed for commercial deployment.Licenses are availablefor single-project use, single developers, agencies, and global corporations, as well as SaaS and OEM redistribution. 所有授權均包括30天內退款保證,一年產品支援和更新,適用於開發/階段/生產,以及永久授權(一次性購買)。 Lite套件從$799開始。 提供分隔符的CSVWriter是一個以逗號分隔的元素,完全免費的商業友好使用。 7. 摘要與結論 摘要 IronXL是一個完整的程式庫,提供您需要的所有功能來操控Excel文件。它提供將各種格式轉換為XLSX,並且從XLSX轉換為其他格式(如CSV)的功能。這種相互轉換為用戶提供了輕鬆操控其他文件格式的靈活性。 另一方面,CSVWriter僅適用於CSV文件格式,選項非常有限。 用戶無法在不同文件格式之間切換,而使用IronXL可以。 所有代碼範例均可在CsvHelper文檔中找到。 此文件提供了如何在您的專案中使用CSVWriter的指南。 結論 IronXL相比CSVHelper.CSVWriter具有明顯的優勢,因為它支持處理多種格式。 此外,您可以根據需要應用公式和樣式,而CsvHelper僅允許讀取和寫入CSV文件,且選項有限。 另外,您無法將新記錄附加到現有的CSV文件中,因為它只是覆蓋以前的條目。 常見問題解答 CSVWriter 處理 C# 中 Excel 文檔的替代方案有哪些? IronXL 是處理 C# 中 Excel 文檔的 CSVWriter 的絕佳替代方案。它允許您讀取、編輯和導出各種 Excel 格式,例如 XLS、XLSX、CSV 和 TSV,而無需安裝 Microsoft Excel。 如何使用 .NET 庫將 CSV 文件轉換為 Excel 格式? 使用 IronXL,您可以輕鬆地將 CSV 文件轉換為 Excel 格式,方法是將 CSV 加載到工作簿中,然後將其保存為 XLSX 文件。這一過程涉及簡單的代碼命令來操作和保存文件。 IronXL 與 CSVWriter 相比有哪些優勢? IronXL 與 CSVWriter 相比提供了多種優勢,包括支持多種文件格式、應用 Excel 公式的功能以及數據排序和樣式設置等高級功能。相反,CSVWriter 僅限於處理 CSV 文件。 如何在我的 C# 項目中安裝 IronXL? 您可以通過 Visual Studio 中的 NuGet 包管理器在您的 C# 項目中安裝 IronXL。或者,您可以下載 NuGet 包或通過開發者命令提示符手動安裝 DLL。 IronXL 可以在 .NET Core 和 Azure 環境中使用嗎? 是的,IronXL 支持多個平台,包括 .NET Core 和 Azure,使其成為開發需要跨不同環境操作 Excel 文件的應用程序的多功能選擇。 使用 CSVWriter 可以將自定義類對象寫入 CSV 文件嗎? 是的,CSVWriter 支持將自定義類對象寫入 CSV 文件。它提供了一種靈活且易於使用的方法來高效地寫入數據,同時處理 CSV 文件。 在商業應用中使用 IronXL 的許可要求是什麼? IronXL 需要商業使用許可。開發過程中是免費的,但根據部署需求(無論是單個項目還是企業級應用)提供不同的許可。 IronXL 如何處理 Excel 公式? IronXL 允許您在電子表格中應用和操作 Excel 公式,為在 C# 應用中提供動態數據計算和分析的強大功能。 使用 IronXL 的一些常見故障排除問題是什麼? 使用 IronXL 的常見故障排除問題可能包括文件格式兼容性、數據類型不匹配或安裝錯誤。確保項目引用設置正確並驗證數據格式可以幫助解決這些問題。 IronXL 可以將數據附加到現有的 Excel 文件嗎? 是的,IronXL 可以將數據附加到現有的 Excel 文件中。它允許您打開一個現有的工作簿,通過添加新數據進行修改,然後保存更改而不覆蓋現有內容。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 更新2026年2月27日 VB.NET 將Excel文件讀取到陣列:IronXL vs Microsoft Interop 完整指南如何在VB.NET中將Excel文件讀取至陣列。比較IronXL和Microsoft Interop方法,附有工作代碼範例和最佳實踐。 閱讀更多 更新2026年3月1日 ASP.NET匯出至Excel:IronXL vs ClosedXML vs EPPlus比較 探索 ASP.NET Core 的最佳 Excel 匯出函式庫。比較 IronXL、ClosedXML 和 EPPlus 的功能、授權以及 C# 開發人員的程式碼範例。 閱讀更多 更新2026年2月1日 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多 IronXL 與 Spire XLS 的比較IronXL 與 CsvHelper 的比較
更新2026年2月27日 VB.NET 將Excel文件讀取到陣列:IronXL vs Microsoft Interop 完整指南如何在VB.NET中將Excel文件讀取至陣列。比較IronXL和Microsoft Interop方法,附有工作代碼範例和最佳實踐。 閱讀更多
更新2026年3月1日 ASP.NET匯出至Excel:IronXL vs ClosedXML vs EPPlus比較 探索 ASP.NET Core 的最佳 Excel 匯出函式庫。比較 IronXL、ClosedXML 和 EPPlus 的功能、授權以及 C# 開發人員的程式碼範例。 閱讀更多
更新2026年2月1日 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多