IronXL 和 CsvWriter 的比較
處理 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;全部完成! 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");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");每個工作簿可以包含多個工作表物件。 這些代表 Excel 文件中的工作表。 如果工作簿包含工作表,請以下列方式按名稱擷取它們:
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");// 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);
}// 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();// 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// Load the workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");
// Save as .csv file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// Saved as : SaveAsCSV.Sheet1.csv5. 使用 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; }
}在 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" }
};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);
}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);
}但是,向現有文件追加內容比較棘手,因為追加時順序可能會改變,或者我們可能會添加了新的屬性。 在添加內容時,我們應該確保考慮到這一點。
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# 中,除了 CSVWriter 之外,還有哪些方法可以處理 Excel 文件?
IronXL 是 C# 中處理 Excel 文件的絕佳替代方案,可以取代 CSVWriter。它允許您讀取、編輯和匯出各種 Excel 格式,例如 XLS、XLSX、CSV 和 TSV,而無需 Microsoft Excel。
如何使用 .NET 函式庫將 CSV 檔案轉換為 Excel 格式?
使用 IronXL,您可以輕鬆地將 CSV 檔案轉換為 Excel 格式。只需將 CSV 檔案載入到工作簿中,然後將其另存為 XLSX 檔案即可。此過程僅需簡單的程式碼命令即可完成檔案操作和儲存。
IronXL 相較於 CSVWriter 有哪些優勢?
與 CSVWriter 相比,IronXL 具有多項優勢,包括支援多種檔案格式、能夠套用 Excel 公式以及資料排序和樣式設定等進階功能。相比之下,CSVWriter 僅限於處理 CSV 檔案。
如何在我的 C# 專案中安裝 IronXL?
您可以透過 Visual Studio 中的 NuGet 套件管理器將 IronXL 安裝到 C# 專案中。或者,您也可以下載 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 檔案中。它允許您開啟現有的工作簿,透過新增資料進行修改,然後儲存變更而不會覆蓋現有內容。






