IRONSOFTWAREHOME
與其他組件的比較

IronXL 與 CsvWriter 的比較

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

處理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是C#中領先的.NET Core和.NET框架Excel電子錶格程式庫。

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程式庫:

  1. 使用Visual Studio與NuGet包
  2. 直接下載NuGet包
  3. 使用DLL手動安裝

讓我們更詳細地看看每一個。

2.1. 使用Visual Studio和NuGet包

Visual Studio提供NuGet包管理器用於在您的項目中安裝NuGet包。 您可以通過項目選單存取它,或者通過右鍵點擊您在解決方案資源管理器中的項目。

選擇-管理-NuGet-包

  • 現在,從瀏覽標籤->搜尋IronXL.Excel->安裝

搜尋IronXL

  • 完成了。

2.2. 直接下载NuGet包

您可以通過直接存取NuGet網站並下載包來完成此操作。 步驟如下:

2.3. 手動使用DLL安裝

下載並安裝IronXL C#程式庫的另一種方法是通過開發者命令提示字元安裝IronXLNuGet package

  • 打開開發者命令提示符——通常位於Visual Studio文件夾中。
  • 輸入以下命令:

PM > Install-Package IronXL.Excel

  • 按下Enter
  • 這將下載並安裝包
  • 重新載入您的Visual Studio項目並開始使用

2.4. 新增必要的using指令

  1. 在解決方案資源管理器中,右鍵點擊Program.cs文件,然後點擊查看程式碼。
  2. 將以下using指令新增到程式碼文件的頂部:
using IronXL;

全部搞定了! IronXL已下载安装完毕,准备就绪。 然而,在此之前,我們應該安裝CsvHelper。

3. CSVWriter安裝

3.1. 使用NuGet包管理器控制台

使用CSVWriter工作時,您需要下載並安裝CsvHelper C#程式庫。 為此,利用以下步驟通過開發者命令提示字元安裝NuGet package

  • 打開開發者命令提示符——通常位於Visual Studio文件夾中。
  • 輸入以下命令:

PM > 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");

4.2. 使用IronXL讀取和操作轉換後的CSV文件

IronXL WorkBook類代表一個Excel表。 要使用C#打開Excel文件,我們使用WorkBook.Load並指定Excel文件(.xlsx)的路徑。 以下一行程式碼用於打開文件進行讀取:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");

每個WorkBook可以包含多個WorkSheet物件。 這些代表Excel文件中的工作表。 如果工作簿包含工作表,請按如下獲取它們的名稱:

// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");

讀取單元格值的程式碼:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

在載入和讀取活頁簿和工作表後,可以使用以下範例程式碼來更改公式或將公式應用於特定單元格。 程式碼如下:

// 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();

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

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; }
}

在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" }
};

5.2. 使用預設設置寫入CSV文件

CsvHelper已成為在C#中使用CSVWriter方法寫入CSV的標準方式,而且非常易於使用:

using (var writer = new StreamWriter("filePersons.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
    csv.WriteRecords(myPersonObjects);
}

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);
}

附加在現有文件上是棘手的,因為附加時順序可能會更改,或者我們可能已新增新屬性。 我們應該確保在附加時考慮到這一點。

6. 授權

IronXL是公開商業的C# Excel庫。 它是免費的開發且可以隨時用於商業部署。 授權可用於單一專案使用、單一開發人員、代理和全球企業以及SaaS和OEM再分發。 所有授權包括30天退費保證、為期一年的產品支援及更新、開發/測試/生產環境的有效性,以及永久授權(一鍵購買)。 Lite 套件從$999開始。

CSVWriter提供分隔符是一個逗號分隔元素,完全免費供商業友好使用。

7. 總結與結論

摘要

IronXL是一個完整的程式庫,提供您需要的所有功能來操作Excel文件。它提供從各種格式轉換到XLSX的設施,也可以從XLSX轉換為其他格式,例如CSV。這種相互轉換為使用者提供了輕鬆操作其他文件格式的靈活性。

另一方面,CSVWriter僅能處理CSV文件格式,並且選項非常有限。 使用者不能在不同文件格式之間切換,而使用IronXL則可以。 所有程式碼樣本均可在CsvHelper文件文件中找到。 本文件提供如何在您的專案中使用CSVWriter的指南。

結論

IronXL在支持多格式操作方面比CSVHelper.CSVWriter具有明顯的優勢。 此外,您可以根據需要應用公式和樣式,而CsvHelper僅允許讀取和寫入CSV文件,並且選項有限。 此外,您無法將新記錄附加到現有的CSV文件,因為它只是覆蓋以前的條目。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立