跳過到頁腳內容
使用 IRONXL

使用 C# 讀取 CSV 文件(代碼示例教程)

本教學示範如何使用 IronXL C# 庫讀取 CSV 文件,而無需安裝額外的互通,從而以高效且有效的方式實現。

如何在 C# 中讀取 CSV 文件

在 MVC、ASP.NET 或 .NET Core 中使用 IronXL 讀取 CSV 檔案之前,必須先安裝 IronXL。 以下是流程的基本概述。

在 Visual Studio 中選擇"專案"選單,選擇"管理 NuGet 套件",搜尋IronXL.Excel ,然後安裝。

使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 1:在 NuGet 套件管理器中安裝 IronXL 套件 在 NuGet 套件管理器中安裝 IronXL 套件

IronXL 是一個很棒的工具,當你需要在 C# 中讀取 CSV 檔案時可以使用它。 下面的程式碼範例表明,您可以使用逗號或其他分隔符號讀取 CSV 檔案。

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 2:本教學的 CSV 數據 本教程的 CSV 數據

已建立WorkBook物件。 然後使用WorkBook物件的LoadCSV方法來指定 CSV 檔案的名稱、格式以及正在讀取的 CSV 檔案中使用的分隔符,這些分隔符將儲存為字串陣列。 在這種情況下,逗號被用作分隔符號。

之後,建立一個WorkSheet物件; 這裡將儲存 CSV 檔案的內容。 然後將文件重命名並以新格式儲存。 然後將 CSV 檔案資料以表格形式排列在工作表中。 輸出結果大致如下:

使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 3:資料轉換為 Excel 文件 數據已轉換為 Excel 文件

C# .NET 中的 CSV 解析

CSV 檔案在欄位中處理換行符的方式以及欄位可能被引號括起來的方式方面存在一些問題,這使得簡單的字串分割技術Split("'")無法正常運作。 IronXL 提供了使用LoadCSV方法中的可選參數來自訂分隔符的功能,有關更多詳細信息,請查看LoadCSV的 API 文件。

C# 記錄 — 讀取 CSV 數據

在下面的範例中, foreach迴圈用於遍歷 CSV 檔案中的行,控制台用於將資料寫入記錄。

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Convert the worksheet data into a DataTable
DataTable dt = ws.ToDataTable(true); // The argument true indicates the first row is header

// Iterate through each row in the DataTable
foreach (DataRow row in dt.Rows)
{
    // Iterate through each column in the current row
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Output each cell value to the console
        Console.Write(row[i] + "  ");
    }
    // New line after each row
    Console.WriteLine();
}
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Convert the worksheet data into a DataTable
Dim dt As DataTable = ws.ToDataTable(True) ' The argument true indicates the first row is header

' Iterate through each row in the DataTable
For Each row As DataRow In dt.Rows
	' Iterate through each column in the current row
	For i As Integer = 0 To dt.Columns.Count - 1
		' Output each cell value to the console
		Console.Write(row(i) & "  ")
	Next i
	' New line after each row
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 4:從 CSV 檔案存取資料並在控制台中顯示 從 CSV 檔案存取資料並在控制台中顯示。

將 CSV 檔案中的字串行轉換為 Excel 格式

操作步驟很簡單:載入 CSV 檔案並將其另存為 Excel 檔案。

// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
// Load a CSV file into a WorkBook object specifying file format and delimiters
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");

// Get the default worksheet from the workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");
' Load a CSV file into a WorkBook object specifying file format and delimiters
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")

' Get the default worksheet from the workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

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

IronXL WorkBook類別代表 Excel 工作表,並使用此類在 C# 中開啟 Excel 檔案。 下列程式碼範例會將所需的 Excel 檔案載入到 WorkBook 物件中:

// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Load WorkBook from a .xlsx file
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
' Load WorkBook from a .xlsx file
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
$vbLabelText   $csharpLabel

WorkSheet物件可以在許多工作簿中找到。 這些是Excel文件的工作表。 如果工作簿包含工作表,您可以透過以下步驟按名稱取得它們:

// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
// Open a specific worksheet for reading by its name
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
' Open a specific worksheet for reading by its name
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

讀取單元格值的程式碼:

// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read and output values from a range of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read and output values from a range of cells elegantly
For Each cell In worksheet("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

以下程式碼範例可以在載入和讀取工作簿和工作表後更新公式或將其套用至特定儲存格。 以下是代碼:

// Set formulas for specific cells
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 for specific cells
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 for specific cells
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()
$vbLabelText   $csharpLabel

結論和 IronXL 特別優惠

IronXL 只需兩行程式碼即可將 CSV 文件轉換為 Excel 文件,此外還支援 C# 中的 CSV 處理。

無需互通,使用 IronXL 的 Excel API 非常輕鬆。 此外,IronXL 還提供了一系列功能,可以與 Excel 工作簿、工作表和單元格層級進行交互,例如在常用格式之間進行轉換單元格資料格式設定合併單元格插入數學函數,甚至管理圖表和添加圖像

使用IronXL 試用許可證金鑰,您可以無浮水印地啟動遊戲。

許可證起價為$799 ,包含一年的免費支援和更新。

IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper 都是Iron 軟體套件的一部分。 Iron Software 允許您以優惠價格購買他們的全套軟體。您只需支付兩份的價格即可使用所有工具。

這絕對是一個值得考慮的選擇。

常見問題解答

如何在 C# 中讀取 CSV 檔案?

您可以使用 IronXL 函式庫在 C# 中讀取 CSV 檔案,方法是採用 LoadCSV 方法,此方法可讓您將 CSV 資料載入 WorkBook 物件中,以便進一步操作。

在 C# 中將 CSV 資料轉換為 Excel 格式的最佳方法是什麼?

在 C# 中將 CSV 資料轉換為 Excel 格式的最佳方法是使用 IronXL.Excel。將 CSV 載入 WorkBook 物件,並使用 SaveAs 方法將其儲存為 Excel 檔案。

如何在 C# 中使用函式庫處理具有自訂分隔符的 CSV 檔案?

使用 IronXL,您可以透過在 LoadCSV 方法中指定分隔符為可選參數,來處理具有自訂分隔符的 CSV 檔案。

我可以用 C# 將 CSV 資料直接轉換成資料庫格式嗎?

是的,您可以在 C# 中使用 IronXL 將 CSV 資料轉換為資料庫格式,方法是利用 ToDataTable 方法,將資料轉換為適合資料庫操作的 DataTable 物件。

使用 C# 檢查不存在的 CSV 檔案有哪些方法?

在 C# 中,您可以使用 IronXL 的 Exists 方法在嘗試載入 CSV 檔案之前檢查其是否存在,從而避免與不存在的檔案相關的錯誤。

從 CSV 轉換成 C# 後,如何操作 Excel 資料?

用 C# 將 CSV 轉換為 Excel 後,您可以使用 IronXL.Excel 的功能來處理資料,例如格式化、合併單元格、插入數學函數,以及新增圖表或圖片。

IronXL 在以 C# 語言讀取和轉換 CSV 檔案方面有哪些優勢?

IronXL 提供的優勢包括安裝簡易、無需額外的互操作、支援自訂定界符,以及在 Excel 內轉換和處理 CSV 資料的強大方法。

如何在 C# 中處理 CSV 資料中的特殊字符?

IronXL 可以處理 CSV 資料中的特殊字符,允許您在載入 CSV 檔案時指定檔案編碼和分隔符,確保資料的完整性和準確性。

IronXL 用戶可獲得哪些支援?

IronXL 授權包含一年的免費支援和更新,提供協助並確保您擁有最新的功能和修正。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。