C# CSV 解析器(分步)教程
你是否曾經遇到過這樣的情況:在 .NET 中,為了完成某些重要任務,需要解析 CSV 文件並將其轉換為 XLSX 文件,或者將 XLSX 文件轉換為 CSV 文件,但卻苦於找不到無需編寫大量代碼就能實現的方法?
有很多CSV庫可以解決這個問題。 不過,本部落格將使用IronXL C# Excel 庫,僅用兩行程式碼即可完成這些任務。
首先,您只需要 Visual Studio,然後按照下面的詳細安裝說明進行操作。
1. 在 Visual Studio 中建立新項目
開啟 Visual Studio 編輯器。
在 Visual Studio 中,前往"檔案"選單。 選擇"新建專案",然後選擇"控制台應用程式"。
輸入項目名稱並選擇項目地點。 然後,點擊"建立"按鈕建立項目。 選擇所需的 .NET Framework 版本,如下圖所示:
建立一個新的 C# 物件。 .NET 主控台應用程式
program.cs檔案將會打開,以便您可以輸入邏輯並建立/執行應用程式。
2. 安裝 IronXL C# 庫
IronXL 庫可以透過多種不同的方式下載和安裝。 今天,我們將重點討論其中兩項:
- 使用 Visual Studio NuGet 套件管理員
- 使用 Visual Studio 命令列
2.1. 使用 Visual Studio NuGet 套件管理器
Visual Studio 中提供了 NuGet 套件管理器 UI,可以直接將套件安裝到專案中。 下面截圖顯示如何開啟它。
C# CSV 解析器(逐步教學),圖 2:使用 Visual Studio NuGet 套件管理器 GUI 安裝 IronXL
套件管理器使用者介面提供了一個瀏覽功能,其中顯示了 NuGet 網站上提供的套件庫清單。輸入關鍵字"IronXL"(如下圖),即可找到 IronXL 程式包。
C# CSV 解析器(逐步教學),圖 3:在 NuGet 套件管理器中,透過在"瀏覽"部分搜尋來找到 IronXL 庫。
選擇IronXL.Excel程式包,然後按一下"安裝"按鈕將其新增至專案。
2.2. 使用 Visual Studio 命令列
在 Visual Studio 功能表中,前往"工具" > "NuGet 套件管理器" >按一下"套件管理器控制台" 。
C# CSV 解析器(逐步教學),圖 4:從 Visual Studio 的"工具"功能表存取 NuGet 套件管理器控制台
程式包管理器控制台將顯示在螢幕底部。 只需輸入以下命令,然後按下回車鍵,即可安裝 IronXL。
Install-Package IronXL.Excel
3. 解析 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
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
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);
}
}
}
}Imports FileHelpers
Imports System
Namespace parse_csv
<DelimitedRecord(",")>
Public Class Record
Public Name As String
Public Age As String
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Create a FileHelperEngine for the Record class
Dim fileHelperEngine As New FileHelperEngine(Of Record)()
' Read records from the CSV file into an array
Dim records = fileHelperEngine.ReadFile("C:\File\records.csv")
' Print each record's Name and Age
For Each record In records
Console.WriteLine(record.Name)
Console.WriteLine(record.Age)
Next record
End Sub
End Class
End Namespace但使用 IronXL,只需幾行程式碼即可實現這一點。
使用 IronXL,您可以解析來自 XLSX、XLS、TSV 等格式的 CSV 檔案。 在本教程中,我們將探討以下幾種轉換:
- 從 XLSX 檔案解析 CSV 文件
- 從 XLS 檔案解析 CSV 文件
- 從 TSV 檔案解析 CSV 文件
3.1. 從 XLSX 檔案解析 CSV 文件
開啟 Microsoft Excel 並建立一個新的 XLSX 檔案。在檔案的行和列中填入一些模擬資料。 下圖顯示了本教程中所有轉換所使用的檔案。
C# CSV 解析器(逐步教學),圖 6:範例 Excel 資料範例 Excel 數據
文件準備就緒後,編寫以下範例程式碼並執行程式。
using IronXL;
class Program
{
static void Main()
{
// Load the XLSX file into a WorkBook object
WorkBook wb = WorkBook.Load("test.xlsx");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Parsed CSV.csv");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the XLSX file into a WorkBook object
WorkBook wb = WorkBook.Load("test.xlsx");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Parsed CSV.csv");
}
}Imports IronXL
Friend Class Program
Shared Sub Main()
' Load the XLSX file into a WorkBook object
Dim wb As WorkBook = WorkBook.Load("test.xlsx")
' Save the WorkBook as a CSV file
wb.SaveAsCsv("Parsed CSV.csv")
End Sub
End Class執行完成後,將建立一個名為Parsed CSV.csv的新檔案。 您可以使用任何您喜歡的編輯器或閱讀器讀取 CSV 檔案。下圖顯示了上述命令的輸出結果—我們產生的 CSV 資料。 在輸出檔中,雙引號表示粗體值。
C# CSV 解析器(逐步教學),圖 7:對範例 Excel 工作簿呼叫 WorkBook.SaveAsCsv 方法的結果
3.2. 從 XLS 檔案解析 CSV 文件
在這個例子中,我們將看到如何將 XLS 檔案轉換為 CSV 格式。
首先,我們建立一個範例 XLS 文件,然後將其轉換為 CSV 格式。
接下來,我們將執行以下程式碼區塊,將範例 XLS 檔案轉換為 CSV 檔案。
using IronXL;
class Program
{
static void Main()
{
// Load the XLS file into a WorkBook object
WorkBook wb = WorkBook.Load("XLS.xls");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Example2.csv");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the XLS file into a WorkBook object
WorkBook wb = WorkBook.Load("XLS.xls");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Example2.csv");
}
}Imports IronXL
Friend Class Program
Shared Sub Main()
' Load the XLS file into a WorkBook object
Dim wb As WorkBook = WorkBook.Load("XLS.xls")
' Save the WorkBook as a CSV file
wb.SaveAsCsv("Example2.csv")
End Sub
End Class上述程式碼執行完畢後,您將獲得一個新產生的 CSV 檔案。
3.3. 從 TSV 檔案解析 CSV 文件
電子表格應用程式經常使用 TSV 檔案(製表符分隔值檔案)在資料庫之間傳輸資料。 它保存一個資料表,資料列之間用製表符分隔,每筆記錄位於不同的行上。
IronXL 提供了一個 CSV 解析器,用於將 TSV 格式的文件解析為 CSV 文件,以便更好地進行資料管理。
讓我們從例子開始。
C# CSV 解析器(逐步教學),圖 10:TSV 電子表格範例
using IronXL;
class Program
{
static void Main()
{
// Load the TSV file into a WorkBook object
WorkBook wb = WorkBook.Load("TSV.tsv");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Example3.csv");
}
}using IronXL;
class Program
{
static void Main()
{
// Load the TSV file into a WorkBook object
WorkBook wb = WorkBook.Load("TSV.tsv");
// Save the WorkBook as a CSV file
wb.SaveAsCsv("Example3.csv");
}
}Imports IronXL
Friend Class Program
Shared Sub Main()
' Load the TSV file into a WorkBook object
Dim wb As WorkBook = WorkBook.Load("TSV.tsv")
' Save the WorkBook as a CSV file
wb.SaveAsCsv("Example3.csv")
End Sub
End Class以下是CSV格式的輸出結果。 C# CSV 解析器(逐步教學),圖 11:輸出的 CSV文件
4.結論
本教學使用 IronXL 在 C# 中將各種檔案格式解析為 CSV 檔案。
此外,IronXL 庫還提供以下功能:
- 功能廣泛,包括資料操作和資料匯出。
- 支援與 Excel 完全相容的圖表管理。
- 支援單元格格式設置,例如文字對齊方式、字體大小、顏色等。
- 能夠自訂 Microsoft Excel 中可用的任何方法,包括凍結面板、新增公式和應用程式條件格式。
- 相容於使用密碼進行Excel加密。
查看 IronXL 的功能、程式碼範例和文件內容,以了解更多關於 IronXL 工作原理的資訊。 下載 IronXL ,即可使用試用許可證金鑰免費試用 30 天。 請造訪授權頁面,以了解有關授權條款和條件的更多資訊。
購買完整的Iron Suite ,即可用兩個 IronXL 庫許可證的價格獲得所有五個 Iron Software 庫的許可證!
感謝閱讀!
常見問題解答
不使用 Interop 如何在 C# 中解析 CSV 檔案?
IronXL 可讓您在不使用 Interop 的情況下,以 C# 解析 CSV 檔案。您可以將 CSV 檔案載入 WorkBook 物件中,並直接對其進行操作,僅需幾行程式碼即可將其轉換為 XLSX 或 XLS 等其他格式。
在 Visual Studio 中安裝 IronXL 函式庫需要哪些步驟?
若要在 Visual Studio 中安裝 IronXL 函式庫,請開啟 NuGet Package Manager UI,搜尋「IronXL」,然後進行安裝。另外,您也可以使用 Visual Studio Command-Line,並在套件管理員控制台執行 Install-Package IronXL.Excel 指令。
如何在 C# 中將 CSV 檔案轉換為 Excel 格式?
使用 IronXL,您可以將 CSV 檔案轉換為 Excel 格式,例如 XLSX 或 XLS,方法是將 CSV 載入 WorkBook 物件,並使用 SaveAsXlsx 等方法將其儲存為所需格式。
是否可以用 C# 解析 TSV 檔案並將其轉換為 CSV?
是的,IronXL 允許解析 TSV 檔案。將 TSV 檔案載入 WorkBook 物件,並使用 SaveAsCsv 方法將其轉換為 CSV 檔案。
C# Excel 函式庫提供哪些資料處理功能?
IronXL.Excel 提供的功能包括資料處理、圖表管理、單元格格式化,以及與 Excel 加密的相容性。它支援凍結面板、公式和條件格式化等操作。
如何用 C# 程式化管理 Excel 試算表格式?
IronXL 可以管理不同的試算表格式,例如 XLSX、XLS 和 CSV。它提供在這些格式之間轉換的方法,並在 .NET 應用程式中有效率地處理資料。
在購買之前,我可以試用 C# 的 Excel 函式庫嗎?
是的,IronXL 提供 30 天的免費試用版,可從 NuGet 網站下載。這可讓您在購買前測試其功能,並確保它符合您的需求。
IronXL 在解析和轉換 CSV 檔案方面有哪些優點?
IronXL 用最少的代碼簡化了解析和轉換 CSV 檔案的過程。它可確保有效率的資料處理,並提供廣泛的功能,增強 C# 應用程式中的 Excel 檔案操作。









