與其他組件的比較 IronXL 與 CsvWriter 的比較 Jordi Bardia 更新:8月 20, 2025 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 處理 CSV 檔案可能是一項具有挑戰性的任務。 然而,如今有許多函式庫可以幫助開發人員完成這項任務,而無需安裝 Microsoft Excel。 在本文中,我們將討論並比較如何使用兩個最受歡迎的函式庫 IronXL 和 CSVWriter,在 C# .NET 技術中以程式設計方式處理 Microsoft Excel 文件(無論是 CSV 格式還是標準 Excel 格式)。 我們先來看看這兩個圖書館分別提供了哪些功能。 IronXL圖書館 IronXL 是一個 .NET 函式庫,它能夠使用 C# 讀取和編輯 Microsoft Excel 文件。 IronXL.Excel 是一個獨立的 .NET 軟體庫,用於讀取各種電子表格格式。 它不需要安裝 Microsoft Excel,也不依賴 Interop。 IronXL 是一個直覺的 C# API,它允許您在 .NET 中以閃電般的速度讀取、編輯和建立 Excel 電子表格檔案。 IronXL 完全支援 .NET Core、.NET Framework、Xamarin、行動平台、Linux、macOS 和 Azure。 IronXL 是一個領先的 .NET core 和 .net framework Excel 電子表格庫,適用於 C#。 IronXL 功能集 載入、讀取和編輯資料-來自 XLS/XLSX/CSV/TSV 格式 儲存與匯出 — 格式為 XLS/XLSX/CSV/TSV/JSON 範圍 — 易於使用的工作表 ["A1:B10"] 語法。 直觀地組合和創建範圍。 排序 — 對範圍、列和行進行排序。 樣式 — 儲存格視覺樣式、字體、大小、背景圖案、邊框、對齊方式和數字格式。 CSV寫入器 一個用於寫入 CSV 檔案的 .NET 函式庫。 速度極快、靈活便利、易於使用。 支援編寫自訂類別物件。 CsvWriter 功能 速度快:即時編譯類,效能極快 靈活:寫作時保守,閱讀時開放 易於使用:讀寫操作與GetRecords<T> ()一樣簡單GetRecords<T> ()和WriteRecords(records) 高度可配置 Linux 模式 記憶體佔用低 1. 建立控制台應用程式 請依照下列步驟建立控制台應用程式: 啟動 Visual Studio 2022 IDE。 點選"建立新項目"。 在"建立新項目"頁面中,從語言下拉清單中選擇C# ,從平台清單中選擇Windows ,從"項目類型"清單中選擇控制台。 從顯示的專案範本中選擇控制台應用程式 (.NET Framework) 。 建立專案 - 控制台應用程式 點選"下一步" 。 在"附加資訊"畫面中,指定您要使用的框架版本。 本範例將使用.NET Framework 4.8 。 建立專案 - .NET Framework 點擊"創建"完成該過程。 專案已經創建完成,我們幾乎可以開始測試庫了。 但是,我們仍然需要將它們安裝並整合到我們的專案中。 我們先來安裝IronXL。 2. IronXL C# 庫的安裝 您可以使用以下方法下載並安裝 IronXL 庫: 在 Visual Studio 中使用 NuGet 套件 2.直接下載 NuGet 套件 使用 DLL 檔案手動安裝 讓我們仔細看看每一個。 2.1. 在 Visual Studio 中使用 NuGet 套件 Visual Studio 提供 NuGet Package Manager,可在專案中安裝 NuGet 套件。 您可以透過專案功能表,或在解決方案總管中右鍵按一下專案來存取。 選擇-管理-NuGet-套件 現在,從瀏覽標籤中搜尋 IronXL.Excel 並安裝 搜尋 IronXL 好了,我們完成了。 2.2.直接下載 NuGet 套件。 您可以直接造訪 NuGet 網站並下載套件。 步驟如下 Navigate tohttps://www.nuget.org/packages/IronXL.Excel 選擇"下載軟體包" 按兩下下載的軟體包 該軟體包將會安裝 重新載入您的 Visual Studio 專案並開始使用。 2.3. 使用 DLL 手動安裝 下載和安裝 IronXL C# 庫的另一種方法是使用以下步驟透過開發人員命令提示字元安裝IronXLNuGet 套件。 開啟開發者命令提示字元-通常位於 Visual Studio 資料夾中。 輸入以下命令: Install-Package IronXL.Excel 按回車鍵 這將下載並安裝該軟體包。 重新載入您的 Visual Studio 專案並開始使用。 2.4. 加入必要的 using 指令 在解決方案資源管理器中,右鍵點選 Program.cs 文件,然後按一下"檢視程式碼"。 在程式碼檔案頂部新增以下 using 指令: using IronXL; using IronXL; Imports IronXL $vbLabelText $csharpLabel 全部完成! IronXL 已下載、安裝完畢,可以使用了。 但在此之前,我們應該先安裝 CsvHelper。 3. CSVWriter 安裝 3.1. 使用 NuGet 套件管理器控制台 要使用 CSVWriter,您需要下載並安裝 CsvHelper C# 函式庫。 為此,請按照以下步驟透過開發人員命令提示字元安裝NuGet 套件。 開啟開發者命令提示字元-通常位於 Visual Studio 資料夾中。 輸入以下命令: Install-Package CsvHelper -Version 27.2.1 按回車鍵 這將下載並安裝該軟體包。 重新載入您的 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"); ' Load the CSV file and specify the format and delimiter Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Get the default worksheet Dim ws As WorkSheet = 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"); ' Load WorkBook Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx") $vbLabelText $csharpLabel 每個工作簿可以包含多個工作表物件。 這些代表 Excel 文件中的工作表。 如果工作簿包含工作表,請以下列方式按名稱擷取它們: // Open Sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); // Open Sheet for reading var worksheet = workbook.GetWorkSheet("sheetnamegoeshere"); ' Open Sheet for reading Dim 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); } ' Read from Ranges of cells elegantly. For Each cell In worksheet("A2:A10") Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text) Next cell $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(); ' 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 ' Load the workbook Dim wb As WorkBook = 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; } } Public Class Person Public Property Id() As Integer Public Property Name() As String Public Property IsLiving() As Boolean End Class $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" } }; Dim myPersonObjects = New List(Of Person)() From { New Person With { .Id = 1, .IsLiving = True, .Name = "John" }, New Person With { .Id = 2, .IsLiving = True, .Name = "Steve" }, New Person With { .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); } Using writer = New StreamWriter("filePersons.csv") Using csv = New CsvWriter(writer, CultureInfo.InvariantCulture) csv.WriteRecords(myPersonObjects) End Using End Using $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); } Dim configPersons = New CsvConfiguration(CultureInfo.InvariantCulture) With {.HasHeaderRecord = False} Using stream = File.Open("filePersons.csv", FileMode.Append) Using writer = New StreamWriter(stream) Using csv = New CsvWriter(writer, configPersons) csv.WriteRecords(myPersonObjects) End Using End Using End Using $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 檔案中新增記錄,因為這會覆寫先前的條目。 常見問題解答 在 C# 中處理 Excel 文件,有哪些方法可以替代 CSVWriter? IronXL.Excel 是 CSVWriter 的絕佳替代品,可用於在 C# 中處理 Excel 文件。它允許您讀取、編輯和匯出各種 Excel 格式,例如 XLS、XLSX、CSV 和 TSV,而不需要 Microsoft Excel。 如何使用 .NET 函式庫將 CSV 檔案轉換為 Excel 格式? 使用 IronXL,您可以輕鬆地將 CSV 檔案轉換為 Excel 格式,只要將 CSV 載入工作簿,然後將其儲存為 XLSX 檔案即可。這個過程涉及簡單的程式碼指令來操作和儲存檔案。 與 CSVWriter 相比,IronXL 有哪些優勢? 與 CSVWriter 相比,IronXL 具有多項優勢,包括支援多種檔案格式、可套用 Excel 公式,以及資料排序與樣式設計等進階功能。相比之下,CSVWriter 只限於處理 CSV 檔案。 如何在我的 C# 專案中安裝 IronXL? 您可以透過 Visual Studio 中的 NuGet Package Manager 在 C# 專案中安裝 IronXL。另外,您也可以下載 NuGet 套件,或透過 Developer Command Prompt 手動安裝 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 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 12月 18, 2025 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多 更新6月 22, 2025 IronXL 使用 C# 開發人員的 Zip 壓縮教程 在本教程中,我們將探索如何在 C# 中使用相對路徑創建 ZIP 文件、從壓縮文件中提取數據及操作 ZIP 文件。 閱讀更多 更新7月 28, 2025 比較三個開放源代碼的 C# Excel 函式庫 本文將探討三個 C# 開源 Excel 程式庫,旨在簡化 .NET 環境中的 Excel 檔案操作 閱讀更多 IronXL 與 Spire XLS 的比較IronXL 與 CsvHelper 的比較
發表日期 12月 18, 2025 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多
更新6月 22, 2025 IronXL 使用 C# 開發人員的 Zip 壓縮教程 在本教程中,我們將探索如何在 C# 中使用相對路徑創建 ZIP 文件、從壓縮文件中提取數據及操作 ZIP 文件。 閱讀更多