跳至頁尾內容
USING IRONXL

using C# 讀取 CSV 文件(程式碼範例教程)

這個教程演示了如何使用IronXL C#程式庫讀取CSV文件,而不需要安裝額外的互操作,以一種高度有效和有效的方式。

How to read CSV Files in C

在使用IronXL讀取MVC、ASP.NET或.NET Core中的CSV文件之前,您必須先安裝IronXL。 以下是該過程的基本概覽。

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

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

當您需要讀取C#中的CSV文件時,IronXL是一個很好的工具。 下面的程式碼範例顯示您可以使用逗號或其他分隔符來讀取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文件的名稱、格式和所用的分隔符,這些都儲存為字串陣列。 在這種情況下使用逗號作為分隔符。

之後,建立了一個WorkSheet物件; 這是CSV文件內容將被儲存的地方。 然後將文件重命名並以新格式儲存。 然後將CSV文件資料以表格形式安排在工作表中。 輸出將如下所示:

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

CSV parsing in C# .NET

CSV在欄位中的換行處理和欄位可能用引號包裹出現了幾個問題,這會阻止簡單的字串分割技術於Split("'")。 相反,IronXL提供了使用LoadCSV方法中的可選參數自定義分隔符,查看LoadCSV的API說明以獲取更多細節。

C# Records — Reading CSV Data

在下面的範例中,使用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物件可以在許多WorkBook中找到。 這些是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特別優惠

除了在C#中處理CSV文件之外,IronXL還可以使用僅兩行程式碼將CSV轉換為Excel。

不需要互操作,使用IronXL的Excel API是輕而易舉。 此外,IronXL還提供了多種功能來與Excel工作簿、工作表和單元格層級進行互動,例如轉換流行格式設定單元格資料格式合併單元格插入數學函式,甚至管理圖表和新增圖片

您可以使用IronXL試用授權金鑰啟動而不帶浮水印。

授權價格從$999開始,包括一年的免費支援和更新。

IronPDF、IronXL、IronOCR、IronBarcode和IronWebScraper都是Iron Software suite的一部分。 Iron Software允許您以折扣價購買他們的整個套裝,您可以用兩件的價錢使用所有這些工具。

這絕對值得一探。

常見問題

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

您可以使用IronXL程式庫中的LoadCSV方法在C#中讀取CSV檔案,這允許您將CSV資料載入到WorkBook物件進行進一步操作。

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

在C#中將CSV資料轉換為Excel格式的最佳方式是使用IronXL。將您的CSV載入到WorkBook物件中,然後使用SaveAs方法將其保存為Excel檔。

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

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

我可以在C#中將CSV資料直接轉換為資料庫格式嗎?

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

有哪些方法可以檢查C#中不存在的CSV檔案?

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

如何在C#中將CSV轉換為Excel後操作Excel資料?

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

IronXL在C#中讀取和轉換CSV檔案有什麼優勢?

IronXL提供了安裝簡便、無需額外互通支持、支持自訂分隔符,以及強大的CSV資料轉換與操作方法。

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

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

IronXL使用者有哪些支援?

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

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話