使用 C# 讀取 CSV 文件(代碼示例教程)
本教學示範如何使用 IronXL C# 庫讀取 CSV 文件,而無需安裝額外的互通,從而以高效且有效的方式實現。
如何在 C# 中逐行讀取 CSV 文件
- 安裝 C# 庫以逐行讀取 CSV 文件
- 利用高階
LoadCSV方法讀取 CSV 文件 - 在 C# 中使用
Exists方法捕獲載入不存在的檔案的錯誤 - 使用
ToDataTable方法將 CSV 資料轉換為資料庫。 - 使用
SaveAs方法匯出 Excel 文件,CSV 資料會自動轉換為 Excel 文件。
How to read CSV Files in C#
在 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")
使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 2:本教學的 CSV 資料 本教程的 CSV 資料
物件WorkBook已建立。 然後使用 WorkBook 物件的LoadCSV方法來指示 CSV 檔案的名稱、格式以及正在讀取的 CSV 檔案中使用的分隔符,這些分隔符將儲存為字串陣列。 在這種情況下,逗號被用作分隔符號。
之後,創建了一個WorkSheet物件; 這裡將儲存 CSV 檔案的內容。 然後將文件重命名並以新格式儲存。 然後將 CSV 檔案資料以表格形式排列在工作表中。 輸出結果大致如下:
使用 C# 讀取 CSV 檔案(程式碼範例教學),圖 3:資料轉換為 Excel 文件 資料已轉換為 Excel 文件
CSV parsing in C# .NET
CSV 檔案在欄位中處理換行符以及欄位可能被引號括起來等方面存在一些問題,這使得簡單的字串分割技術無法正常運作。 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
使用 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")
使用 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")
可以在許多工作簿中找到 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")
讀取單元格值的程式碼:
// 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
以下程式碼範例可以在載入和讀取工作簿和工作表後更新公式或將其套用至特定儲存格。 以下是代碼:
// 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()
結論和 IronXL 特別優惠
IronXL 只需兩行程式碼即可將 CSV 文件轉換為 Excel 文件,此外還支援 C# 中的 CSV 處理。
無需互通,使用 IronXL 的 Excel API 非常輕鬆。 此外,IronXL 還提供了一系列功能,可以與 Excel 工作簿、工作表和單元格層級進行交互,例如在常用格式之間進行轉換、單元格資料格式設定、合併單元格、插入數學函數,甚至管理圖表和添加圖像。
使用IronXL 試用許可證金鑰,您可以無浮水印地啟動遊戲。
許可證價格從 $999 起,包含一年的免費支援和更新。
IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper 都是Iron 軟體套件的一部分。 Iron Software 允許您以優惠價格購買他們的全套軟體。您只需支付兩份的價格即可使用所有工具。
這絕對是一個值得考慮的選擇。
常見問題解答
我如何在 C# 中讀取 CSV 文件?
您可以使用 IronXL 庫在 C# 中讀取 CSV 文件,通過使用 LoadCSV 方法將 CSV 數據加載到 WorkBook 對象中以便進一步操作。
在 C# 中將 CSV 數據轉換為 Excel 格式的最佳方式是什麼?
在 C# 中將 CSV 數據轉換為 Excel 格式的最佳方法是使用 IronXL。將您的 CSV 加載到 WorkBook 對象中,然後使用 SaveAs 方法將其保存為 Excel 文件。
如何在 C# 中使用庫處理具有自定義分隔符的 CSV 文件?
使用 IronXL,您可以通過在 LoadCSV 方法中指定定界符作為可選參數來處理具有自定義定界符的 CSV 文件。
我可以直接將 CSV 數據轉換為 C# 的數據庫格式嗎?
是的,您可以使用 IronXL 將 CSV 數據轉換為 C# 中的數據庫格式,通過利用 ToDataTable 方法,該方法可以將數據轉換為適合數據庫操作的 DataTable 對象。
有哪些方法可用於使用 C# 檢查不存在的 CSV 文件?
在 C# 中,您可以使用 IronXL 的 Exists 方法在試圖加載 CSV 文件之前檢查該文件是否存在,從而避免與不存在的文件相關的錯誤。
在 C# 中將 CSV 轉換為 Excel 後,我如何操作 Excel 數據?
在 C# 中將 CSV 轉換為 Excel 後,您可以使用 IronXL 的功能操作數據,例如格式化、合併單元格、插入數學函數以及添加圖表或圖像。
IronXL 在 C# 中讀取和轉換 CSV 文件有哪些優勢?
IronXL 提供的優勢包括安裝簡便、無需其他 interop、自定義分隔符支持,以及在 Excel 中轉換和操作 CSV 數據的強大方法。
在 C# 中如何處理 CSV 數據中的特殊字符?
IronXL 能夠通過在加載 CSV 文件時允許您指定文件編碼和分隔符來處理 CSV 數據中的特殊字符,從而確保數據的完整性和準確性。
IronXL 用戶有哪些支持可用?
IronXL 許可證包括一年免費支持和更新,提供幫助並確保您擁有最新功能和修補。


