C# CSV 解析器(逐步教學)
IronXL只需兩行程式碼即可在 C# 中解析 CSV 檔案並將其轉換為 Excel 格式。 本教學課程示範如何使用 IronXL 庫的簡單 API 將 XLSX、XLS 和 TSV 檔案轉換為 CSV 格式,從而無需複雜的手動解析程式碼。 該程式庫在內部處理文件格式轉換的所有複雜細節,因此非常適合需要快速、可靠的 CSV 解析而無需編寫大量程式碼的開發人員。
你是否曾經遇到過這樣的情況:在 .NET 中執行重要任務時,需要解析 CSV 文件並將其轉換為 XLSX 文件,或者將 XLSX 文件轉換為 CSV 文件,但卻苦於找不到無需編寫大量代碼就能實現的方法?
有很多CSV庫可以解決這個問題。 不過,本教學將使用IronXL C# Excel 庫,只需兩行程式碼即可完成這些任務。 與需要手動解析分隔符號和處理特殊情況的傳統方法不同,IronXL 提供了一個強大且經過測試的解決方案,可在包括 Windows、Linux 和 macOS 在內的不同平台上運行。
首先,你只需要 Visual Studio 即可。 請依照以下說明進行詳細安裝步驟。 本教學課程專為具備基本 C# 知識、希望在不使用互通依賴項的情況下處理 Excel 檔案的開發人員而設計。
如何在 Visual Studio 中建立新專案?
開啟 Visual Studio 編輯器。
在 Visual Studio 中,前往"檔案"選單。 選擇"新建專案",然後選擇"控制台應用程式"。 這樣就創建了一個簡單的專案結構,非常適合學習如何建立和操作 Excel 檔案。
輸入項目名稱並選擇項目地點。 然後點擊"創建"按鈕創建項目。 選擇所需的 .NET Framework 版本,如下圖所示:
圖 1:在 Visual Studio 中使用 .NET Framework 4.7.2 設定新的 C# 控制台應用程式 (.NET Framework) 專案。此 Visual Studio 新專案設定對話方塊顯示了專案名稱為"ConsoleApp1"的C# 控制台應用程式 (.NET Framework) 的設定、位置路徑和已選取的 .NET Framework 4.7.2。
program.cs檔案將會打開,以便您可以輸入邏輯並建立/執行應用程式。 在這裡,我們將使用 IronXL 簡單易用的 API 來添加我們的 CSV 解析程式碼。
如何安裝 IronXL C# 庫?
IronXL 庫可以透過多種不同的方式下載和安裝。 今天,我們將重點放在職業發展環境中常用的兩種方法:
- 使用 Visual Studio NuGet 套件管理器
- 使用 Visual Studio 命令列
兩種方法同樣有效,你的選擇取決於你喜歡圖形介面還是命令列工具。 有關不同環境下的詳細安裝指南,請參閱官方文件。
我應該使用 Visual Studio NuGet 套件管理器嗎?
Visual Studio 中提供了 NuGet 套件管理器 UI,可以直接將套件安裝到專案中。 對於喜歡視覺化介面並希望在安裝前查看軟體包詳細資訊的開發人員來說,這種方法特別有用。 下面的截圖顯示如何開啟它。
Visual Studio 介面顯示"工具"功能表已展開,"NuGet 套件管理器"選項已高亮顯示,且二級選單顯示"管理解決方案的 NuGet 套件"已選取。若要存取 Visual Studio 中的 NuGet 套件管理器,請導覽至"工具">"NuGet 套件管理器">"管理解決方案的 NuGet 套件"。
套件管理器使用者介面提供了一個瀏覽功能,用於顯示 NuGet 網站上可用的套件庫清單。輸入"IronXL"(如下圖)即可找到 IronXL 套件。 您也可以探索 IronXL 提供的相關 Excel 處理功能。
Visual Studio 的 NuGet 套件管理器介面顯示了 IronXL.Excel 套件的搜尋結果,其中已選擇版本 2022.9.9454 安裝到名為"Create PDF"的 C# 專案中。 Visual Studio 中的 NuGet 套件管理器顯示了 IronXL.Excel 程式庫,該程式庫使開發人員能夠在 .NET 應用程式中讀取、產生和編輯 Excel 檔案。 軟體包顯示下載量已達 25 萬次,版本為 2022.9.9454,可供安裝。
選擇IronXL.Excel程式包,然後按一下"安裝"按鈕將其新增至專案。 安裝過程將自動處理所有依賴項,並配置您的專案以進行Excel 文件操作。
何時應該使用 Visual Studio 命令列?
在 Visual Studio 功能表中,前往"工具" > "NuGet 套件管理器" >按一下"套件管理器控制台" 。 對於熟悉命令列介面或需要在建置腳本中自動化安裝過程的開發人員來說,這種方法是更優的選擇。
Visual Studio 介面顯示"工具"功能表已展開,"NuGet 套件管理器"選項已高亮顯示,底部開啟了"套件管理器控制台"視窗。在 Visual Studio 中開啟 NuGet 套件管理器控制台以安裝 CSV 解析庫。
程式包管理器控制台將顯示在螢幕底部。 輸入以下指令並按下回車鍵。 將安裝IronXL。 當您需要安裝特定版本或使用Azure或AWS 環境的部署腳本時,此方法特別有用。
Install-Package IronXL.Excel
Visual Studio 中的套件管理器控制台顯示 IronXL.Excel NuGet 套件的安裝過程,並顯示下載成功的確認訊息。套件管理器控制台顯示 IronXL.Excel 版本 2022.11.10251 已成功安裝,並顯示了套件還原程序以及從 NuGet 儲存庫下載的確認資訊。
如何使用 IronXL 解析 CSV 檔案?
手動解析 CSV 檔案需要編寫大量精確的程式碼才能完成這項工作,但使用 IronXL,只需要幾行程式碼。 當需要快速轉換不同的電子表格格式時,這種簡單性尤其有價值。
僅使用傳統的 C# 程式碼解析 CSV 格式的檔案需要編寫大量冗長的程式碼。 以下是使用傳統方法實現此功能的程式碼範例:
using FileHelpers;
using System;
namespace parse_csv
{
[DelimitedRecord(",")]
public class Record
{
public string Name;
public string Age;
}
class Program
{
static void Main(string[] args)
{
// Create a FileHelperEngine for the Record class
var fileHelperEngine = new FileHelperEngine<Record>();
// Read records from the CSV file into an array
// Note: This requires proper error handling for production use
var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");
// Print each record's Name and Age
foreach (var record in records)
{
Console.WriteLine(record.Name);
Console.WriteLine(record.Age);
}
}
}
}using FileHelpers;
using System;
namespace parse_csv
{
[DelimitedRecord(",")]
public class Record
{
public string Name;
public string Age;
}
class Program
{
static void Main(string[] args)
{
// Create a FileHelperEngine for the Record class
var fileHelperEngine = new FileHelperEngine<Record>();
// Read records from the CSV file into an array
// Note: This requires proper error handling for production use
var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");
// Print each record's Name and Age
foreach (var record in records)
{
Console.WriteLine(record.Name);
Console.WriteLine(record.Age);
}
}
}
}但使用 IronXL,只需幾行程式碼即可實現此功能,它還內建了錯誤處理功能,並支援各種檔案格式。
使用 IronXL,您可以解析來自 XLSX、XLS、TSV 等格式的 CSV 檔案。 該程式庫還支援在 ASP.NET 應用程式和Blazor 應用程式中讀取 Excel 檔案。 在本教程中,我們將探討以下幾種轉換:
- 從 XLSX 檔案解析 CSV 文件
- 從 XLS 檔案解析 CSV 文件
- 從 TSV 檔案解析 CSV 文件
如何將XLSX檔轉換為CSV檔?
開啟 Microsoft Excel 並建立一個新的 XLSX 檔案。在檔案的行和列中填入一些模擬資料。 在生產環境中,您可能需要使用 IronXL以程式設計方式建立 Excel 檔案。 下圖顯示了本教程中所有轉換所使用的檔案。
圖 6: Excel 範例數據,展示了一個簡單的庫存表,包含"物品"、"數量"、"價格"和"總計"四列,其中包含斧頭、鋼筆、充電器和耳機的數據。此範例資料展示了一個基本的庫存結構,將用於演示 C# 中的 CSV 解析。
文件準備就緒後,編寫以下範例程式碼並執行程式。 IronXL 在內部處理所有複雜的解析,包括正確處理特殊字元和資料類型:
using IronXL;
class Program
{
static void Main()
{
// Load the XLSX file into a WorkBook object
// The Load method automatically detects the file format
WorkBook wb = WorkBook.Load("test.xlsx");
// Save the WorkBook as a CSV file
// This method handles all formatting and conversion automatically
wb.SaveAsCsv("Parsed CSV.csv");
// Optional: Save with custom delimiter
// wb.SaveAsCsv("Parsed CSV.csv", delimiter: ";");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the XLSX file into a WorkBook object
// The Load method automatically detects the file format
WorkBook wb = WorkBook.Load("test.xlsx");
// Save the WorkBook as a CSV file
// This method handles all formatting and conversion automatically
wb.SaveAsCsv("Parsed CSV.csv");
// Optional: Save with custom delimiter
// wb.SaveAsCsv("Parsed CSV.csv", delimiter: ";");
}
}執行完成後,將建立一個名為Parsed CSV.csv的新檔案。 您可以使用任何您喜歡的編輯器或閱讀器開啟 CSV 檔案。您也可以將 CSV 資料重新匯入 Excel進行進一步處理。 下圖顯示了上述命令的輸出結果—我們產生的 CSV 資料。 在輸出檔中,雙引號表示粗體值。
圖 7:使用 WorkBook.SaveAsCsv方法產生的WorkBook輸出,以逗號分隔格式顯示SaveAsCsv後的 Excel 資料。
如何將 XLS 檔案轉換為 CSV 檔案?
在這個例子中,我們將看到如何將 XLS 檔案轉換為 CSV 格式。 這個過程與 XLSX 轉換相同,這反映了 IronXL 在處理不同 Excel 檔案格式方面的多功能性。
首先,我們建立一個範例 XLS 文件,然後將其轉換為 CSV 格式。 請注意,XLS 是較舊的 Excel 格式,但 IronXL 可以無縫地處理它以及現代格式:
圖 8為一個範例 Excel 文件,展示了庫存清單,包含"物品"、"數量"、"價格"和"總計"四列,列出了斧頭、筆、充電器、耳機和鋸子等各種工具及其數量和計算出的總計,總計為 1239。此範例 Excel 檔案演示了庫存資料結構及其自動計算功能,可以使用 C# CSV 庫進行解析。
接下來,我們將執行以下程式碼區塊,將範例 XLS 檔案轉換為 CSV 檔案。 IronXL 在轉換過程中會保持資料完整性,包括公式和計算結果:
using IronXL;
class Program
{
static void Main()
{
// Load the XLS file into a WorkBook object
// IronXL automatically handles the older XLS format
WorkBook wb = WorkBook.Load("XLS.xls");
// Save the WorkBook as a CSV file
// All formulas are evaluated and results are exported
wb.SaveAsCsv("Example2.csv");
// Optional: Export specific worksheet
// WorkSheet ws = wb.GetWorkSheet("Sheet1");
// ws.SaveAsCsv("Example2.csv");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the XLS file into a WorkBook object
// IronXL automatically handles the older XLS format
WorkBook wb = WorkBook.Load("XLS.xls");
// Save the WorkBook as a CSV file
// All formulas are evaluated and results are exported
wb.SaveAsCsv("Example2.csv");
// Optional: Export specific worksheet
// WorkSheet ws = wb.GetWorkSheet("Sheet1");
// ws.SaveAsCsv("Example2.csv");
}
}上述程式碼執行完畢後,您將獲得一個新產生的 CSV 檔案。對於更複雜的場景,您可能需要在匯出之前選擇特定範圍或對資料進行排序。
! WordPad 視窗顯示一個 CSV 文件,其中包含商品、數量、價格和總計,包括 AXE、鋼筆、充電器、耳機和鋸子的條目。範例 CSV 檔案在WordPad中打開,顯示格式正確的逗號分隔數據,帶有標題和多個產品條目。
如何從 TSV 格式解析 CSV 檔案?
電子表格應用程式經常使用 TSV 檔案(製表符分隔值檔案)在資料庫之間傳輸資料。 它會保存一個資料表,資料列之間用製表符分隔,每筆記錄佔一行。當資料中包含可能幹擾 CSV 解析的逗號時,TSV 檔案尤其有用。
IronXL 提供了一個 CSV 解析器,用於將 TSV 格式的文件解析為 CSV 文件,以便更好地進行資料管理。 轉換過程簡單直接,並能始終保持資料完整性。
讓我們從例子開始。 首先,我們將建立一個包含學生資料的TSV檔案:
! Microsoft Word 文檔,顯示一個包含學生資料的表格,資料包括姓名、電子郵件地址、學號 (R-NO) 和字母等級,格式為製表符分隔值 (TSV)。範例:在 Microsoft Word 中顯示的製表符分隔的學生數據,展示了 TSV 文件的結構,其中包含姓名、電子郵件地址、學號和等級列。
using IronXL;
class Program
{
static void Main()
{
// Load the TSV file into a WorkBook object
// IronXL automatically detects tab-separated format
WorkBook wb = WorkBook.Load("TSV.tsv");
// Save the WorkBook as a CSV file
// Tabs are converted to commas automatically
wb.SaveAsCsv("Example3.csv");
// Alternative: Load with explicit delimiter specification
// WorkBook wb = WorkBook.LoadCSV("TSV.tsv", delimiter: "\t");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the TSV file into a WorkBook object
// IronXL automatically detects tab-separated format
WorkBook wb = WorkBook.Load("TSV.tsv");
// Save the WorkBook as a CSV file
// Tabs are converted to commas automatically
wb.SaveAsCsv("Example3.csv");
// Alternative: Load with explicit delimiter specification
// WorkBook wb = WorkBook.LoadCSV("TSV.tsv", delimiter: "\t");
}
}以下是CSV格式的輸出結果。 請注意 IronXL 是如何在保持資料結構不變的情況下,將製表符分隔的值正確轉換為逗號分隔的值的:
! WordPad 文件顯示了一個 CSV 文件,其中包含學生數據,包括姓名、電子郵件、學號和成績,並以逗號作為分隔符號。範例 CSV 檔案在WordPad中打開,顯示了學生記錄,其中包含姓名、電子郵件、學號和成績字段,字段之間以逗號分隔。
使用 IronXL 進行 CSV 解析的主要優勢是什麼?
本教學課程示範如何使用 IronXL 在 C# 中將各種檔案格式解析為 CSV 檔案。 該程式庫為所有文件格式提供一致的 API,無需更改程式碼結構即可輕鬆處理不同的 Excel 版本和格式。
此外,IronXL 庫還提供以下功能,使其成為 Excel 資料處理的絕佳選擇:
- 功能廣泛,包括資料操作和資料匯出為各種格式,包括 JSON、XML 和 HTML。
- 支援與 Excel 完全相容的圖表管理,允許以程式設計方式建立和修改圖表。
- 支援單元格格式設置,例如文字對齊方式、字體大小、顏色、邊框和背景圖案。
- 能夠自訂 Excel 方法,包括凍結面板、新增公式、條件格式和合併儲存格。
- 相容於 Excel 加密,支援對工作簿和單一工作表設定密碼。
- 支援命名範圍和命名表,以便更好地組織資料。
- 進階功能,例如自動調整行和列的大小、超連結和註解。
IronXL 在效能優化方面也表現出色。 根據最近的效能改進,該庫現在處理文件的速度提高了 40 倍,同時使用的記憶體也顯著減少,使其適用於大規模資料處理任務。 該程式庫可在Docker 容器、 Linux 系統和macOS 環境中無縫運行,提供真正的跨平台相容性。
對於企業環境,IronXL 提供強大的安全功能,並符合業界標準。 該程式庫同時支援VB.NET和 C#,使其能夠靈活地應用於不同的開發團隊。 處理大型檔案時,請注意檔案大小限制和可用的最佳化策略。
查看 IronXL 的功能、程式碼範例和文檔,以了解有關 IronXL 工作原理的更多資訊。 您可以探索特定的用例,例如使用 .NET MAUI進行行動開發,或與 DataTables 整合進行資料庫操作。 下載 IronXL ,即可使用試用許可證金鑰免費試用 30 天。 對於生產環境,您需要套用一個許可證金鑰,該金鑰可以在 Web 應用程式的web.config 檔案中進行設定。 訪問許可頁面,了解有關許可條款和條件的更多信息,包括許可延期和升級選項。
購買完整的Iron Suite ,即可用兩個 IronXL 庫許可證的價格獲得所有五個 Iron Software 庫的許可證!
感謝閱讀!
常見問題解答
如何在不使用 Interop 的情況下用 C# 解析 CSV 檔案?
IronXL 讓您在不使用 Interop 的情況下,以 C# 解析 CSV 檔案。您可以將 CSV 檔案載入到 WorkBook 物件中並直接操作它,只需幾行程式碼即可將其轉換為其他格式,例如 XLSX 或 XLS。
在 Visual Studio 中安裝 IronXL 函式庫需要哪些步驟?
若要在 Visual Studio 中安裝 IronXL 庫,請開啟 NuGet 套件管理器介面,搜尋“IronXL”,然後進行安裝。或者,您也可以使用 Visual Studio 命令列,並在套件管理器控制台中執行命令Install-Package IronXL.Excel 。
如何在C#中將CSV檔案轉換為Excel格式?
使用 IronXL,您可以將 CSV 檔案載入到 WorkBook 物件中,然後使用SaveAsXlsx等方法將其儲存為所需的格式,從而將 CSV 檔案轉換為 Excel 格式,例如 XLSX 或 XLS。
是否可以用 C# 解析 TSV 檔案並將其轉換為 CSV 檔案?
是的,IronXL 支援解析 TSV 檔案。將 TSV 檔案載入到 WorkBook 物件中,然後使用SaveAsCsv方法將其轉換為 CSV 檔案。
C# Excel 函式庫提供了哪些資料操作功能?
IronXL 提供資料處理、圖表管理、儲存格格式設定以及與 Excel 加密的相容性等功能。它支援凍結面板、公式和條件格式設定等操作。
如何在C#中以程式方式管理Excel電子表格格式?
IronXL 支援管理不同的電子表格格式,例如 XLSX、XLS 和 CSV。它提供了在這些格式之間進行轉換的方法,並能夠在 .NET 應用程式中有效地處理資料。
我可以在購買前試用 C# 的 Excel 庫嗎?
是的,IronXL 提供 30 天免費試用版,可從 NuGet 網站下載。這樣您就可以在購買前測試其功能,確保它符合您的需求。
IronXL 在解析和轉換 CSV 檔案方面有哪些優勢?
IronXL 以最少的程式碼簡化了 CSV 檔案的解析和轉換過程。它確保高效的資料處理,並提供豐富的功能來增強 C# 應用程式中的 Excel 檔案操作。






