如何在 C# 中讀取 CSV 文件
本文將探討如何使用 IronXL 函式庫建立 C# CSV 讀取器。
IronXL - Excel庫
IronXL是一個功能強大的 Excel 庫,它為 C# 開發人員提供了創建、載入、讀取和編輯各種格式的 Excel 電子表格的功能。 IronXL 專為 .NET 設計,優先考慮速度、準確性和易用性。 它允許將 Excel 檔案儲存為不同的格式,並將各種電子表格格式載入到 Excel 中以高效讀取資料。
IronXL 支援不同檔案副檔名的 Excel 工作簿格式,包括 CSV 和 TSV、XLS 和 XLSX、XSLT 和 XLSM。 它相容於最新版本的 .NET Framework,以及 2.0 及之前的所有版本。 IronXL 可在各種平台上使用,包括 Linux、MacOS、Azure、Docker 和 AWS。
如何使用 IronXL 在 C# 中建立一個 CSV 讀取器?
先決條件
要將 CSV 檔案中的資料轉換為 Excel 檔案並在 C# 中讀取,我們需要以下工具:
-
Visual Studio:是用於開發 C# .NET 應用程式的重要整合開發環境 (IDE)。 它是開發 C# 應用程式的官方推薦 IDE,可以從微軟網站下載和安裝。 不過,如果開發人員願意,也可以使用其他支援 C# 環境的 IDE。 2.建立控制台應用程式:按照以下步驟建立一個簡單的控制台應用程式。
-
開啟 Visual Studio 並按一下"建立專案"。
-
從可用選項清單中選擇"控制台應用程式"。 請確保選擇的語言是 C#。
如何在 C# 中讀取 CSV 文件,圖 3:建立一個新的控制台應用程式 建立一個新的控制台應用程式
接下來,你可以隨意為你的專案命名。
[如何在 C# 中讀取 CSV 文件,圖 4:配置](/static-assets/excel/blog/csharp-csvreader-tutorial/csharp-csvreader-tutorial-3.webp) **配置**專案配置的下一步是選擇 .NET Framework。 最新版本為 .NET 7.0,該版本在標準期限內支援。 但是,為了避免任何潛在的錯誤,您可以選擇更穩定的 .NET 6.0 版本,因為微軟為其提供長期支援。 根據您的特定需求選擇合適的版本非常重要。
-
- IronXL - 它是專為處理 Excel 電子表格而設計的 .NET Excel 庫。 必須先將其安裝到您的 C# 應用程式中才能使用。 您可以從多個來源下載並安裝該軟體包:
- NuGet - .NET 的套件管理器。 您可以直接從NuGet 網站下載 IronXL。
- Visual Studio NuGet 套件管理器:依序點選"工具" > "NuGet 套件管理器" > "管理解決方案的套件",開啟套件管理器。
- 直接從 Iron 網站下載 IronXL .NET Excel DLL zip 文件,並將其作為專案參考新增至專案解決方案。
增加 IronXL 命名空間
滿足前提條件後,下一步是在 main.cs 檔案的源代碼頂部添加 IronXL 命名空間:
using IronXL;
using IronXL;
Imports IronXL
開啟一個現有的 CSV 文件
IronXL 提供了一種在 C# 中讀取 CSV 檔案的簡單方法。 首先,開啟一個CSV檔案進行讀取。 它是一種基於行和列的文件類型。 這裡使用WorkBook類別及其LoadCSV方法來開啟 CSV 檔案。程式碼如下:
// Load the CSV file and convert it to XLSX format.
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Load the CSV file and convert it to XLSX format.
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
' Load the CSV file and convert it to XLSX format.
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
IronXL 中的 LoadCSV 方法可讓您開啟 CSV 檔案並將其轉換為 XLSX 格式。 此方法提供了指定 CSV 檔案中使用的清單分隔符號的選項。在本例中,使用預設分隔符,即逗號。 開啟產生的檔案後,可以使用 IronXL 的讀取和操作 Excel 電子表格的功能對其進行進一步處理。
如何在 C# 中讀取 CSV 文件,圖 5:CSV 文件 CSV 檔案
從 CSV 讀取器類別取得工作表
在上一個步驟中,使用 IronXL 將 CSV 檔案作為 Excel 工作簿開啟。 現在,使用WorkSheet類別從工作簿中取得預設工作表。 以下範例示範如何取得用於讀取 CSV 資料的工作表:
// Retrieve the default worksheet from the loaded workbook.
WorkSheet ws = csv.DefaultWorkSheet;
// Retrieve the default worksheet from the loaded workbook.
WorkSheet ws = csv.DefaultWorkSheet;
' Retrieve the default worksheet from the loaded workbook.
Dim ws As WorkSheet = csv.DefaultWorkSheet
有關使用 Excel 工作表的更多信息,您可以訪問此程式碼範例頁面。
使用 C# DataTable 讀取 CSV 資料
CSV 檔案載入成功且資料以工作表形式存在後,即可在 C# DataTable 中非常輕鬆地從 CSV 檔案中讀取資料。
將工作表轉換為資料表
首先,建立一個 DataTable 實例,並使用ToDataTable方法將工作表資料轉換為表格。 以下程式碼有助於實現此任務:
// Convert the worksheet data to a DataTable.
DataTable dt = ws.ToDataTable(true);
// Convert the worksheet data to a DataTable.
DataTable dt = ws.ToDataTable(true);
' Convert the worksheet data to a DataTable.
Dim dt As DataTable = ws.ToDataTable(True)
開始讀取 CSV 資料
現在,使用 DataTable 實例遍歷所有記錄。 資料以行和列的形式接收。 首先,然後逐列獲取其值。 若要取得包含標題行在內的所有記錄,請使用下列程式碼片段:
// Iterate over each row in the DataTable.
foreach (DataRow row in dt.Rows)
{
// Iterate over each column in the current row.
for (int i = 0; i < dt.Columns.Count; i++)
{
// Print each column value in the current row.
Console.Write(row[i] + " ");
}
// Move to the next line after printing all columns of the current row.
Console.WriteLine();
}
// Iterate over each row in the DataTable.
foreach (DataRow row in dt.Rows)
{
// Iterate over each column in the current row.
for (int i = 0; i < dt.Columns.Count; i++)
{
// Print each column value in the current row.
Console.Write(row[i] + " ");
}
// Move to the next line after printing all columns of the current row.
Console.WriteLine();
}
' Iterate over each row in the DataTable.
For Each row As DataRow In dt.Rows
' Iterate over each column in the current row.
For i As Integer = 0 To dt.Columns.Count - 1
' Print each column value in the current row.
Console.Write(row(i) & " ")
Next i
' Move to the next line after printing all columns of the current row.
Console.WriteLine()
Next row
在上面的程式碼中,使用循環從行集合中取得單一記錄。 然後,在一個嵌套的 for 循環中,統計列數,最後,將每一行的資料列印到螢幕上。 輸出格式與 CSV 檔案類似。
摘要
本文示範如何使用 IronXL 庫在 C# 中建立 CSV 讀取器。 IronXL 可以輕鬆載入 CSV 文件,因為它支援 Excel 電子表格中的 CSV 格式。 DataTable 物件用於建立優雅的 CSV 讀取器,並將輸出格式化為與原始檔案相符。
IronXL 還提供不同文件格式之間的便利轉換,並允許從頭開始建立 Excel 文件,而無需安裝 Interop 和 Microsoft Excel。 它還相容於 C# DataSet 和 DataTable,為開發人員提供了在不依賴第三方應用程式的情況下進行資料相互轉換的靈活性。 IronXL 功能強大,是 C# 開發人員處理 Excel 電子表格和高效處理 CSV 資料的寶貴工具。
IronXL 可供開發免費使用。 但是,對於商業用途,您需要從 $799 開始購買其授權。 您也可以使用其免費試用版來測試其編譯後的 .dll 檔案在生產模式下與您的專案的兼容性。
常見問題解答
如何在 C# 中創建一個不使用 Interop 的 CSV Reader?
你可以通過利用 IronXL 庫在 C# 中創建一個不使用 Interop 的 CSV Reader。首先,通過 NuGet 安裝 IronXL 或從 IronXL 網站下載 .NET Excel DLL。在代碼中添加 IronXL 命名空間,並使用WorkBook.LoadCSV方法加載 CSV 文件,允許你將其作為 Excel 工作簿操縱。
使用 IronXL 進行 CSV 操作的優勢是什麼?
IronXL 提供了一個強大且靈活的解決方案來處理 C# 中的 CSV 操作。它允許開發者加載、閱讀和轉換 CSV 文件為 Excel 格式,而不需要 Microsoft Excel 或 Interop,使其兼容於 Linux、MacOS 和雲服務如 Azure 和 AWS 等多種平台。
如何使用 IronXL 將 CSV 數據轉換為 Excel 格式?
要使用 IronXL 將 CSV 數據轉換為 Excel 格式,先通過WorkBook.LoadCSV方法加載 CSV 文件,然後使用WorkBook.SaveAs方法保存並指定所需的 Excel 格式如 XLSX。
使用 IronXL 是否可以將 CSV 數據讀取到 C# 的 DataTable 中?
是的,你可以在 C# 中使用 IronXL 將 CSV 數據讀取到 DataTable中。將 CSV 加載作為工作簿,訪問默認工作表,並使用Range.ToDataTable方法將工作表數據轉換為DataTable,以便於操作和迭代。
IronXL 庫兼容哪些平台?
IronXL 庫與多個平台兼容,包括 Windows、Linux、MacOS、Azure、Docker 和 AWS。這種跨平台支援使其成為在不同環境中工作的開發者的多功能選擇。
IronXL 可以用於商業項目嗎?
是的,IronXL 可以用於商業項目。雖然它提供用於開發和測試的免費試用版,但生產使用需要商業許可證。此許可證提供完整的功能和支持。
IronXL 如何提高 C# 應用中的 CSV 數據操作?
IronXL 通過允許開發者不依賴於 Microsoft Excel 加載和編輯 CSV 文件來增強 C# 應用中的 CSV 數據操作。它提供 CSV 和 Excel 格式之間轉換的方法,使得數據處理更靈活和高效。

