使用IRONXL

使用C#讀取CSV檔案(程式碼範例教程)

已更新 2024年1月29日
分享:

本教程說明如何使用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 是一個很好的工具,當您需要時可以使用 讀取CSV檔案 在 C# 中。下面的程式碼範例顯示如何使用逗號或其他分隔符號來讀取 CSV 文件。

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
VB   C#

使用 C# 讀取 CSV 文件(代碼示例教程),圖 2:本教程的 CSV 數據

本教學的 CSV 資料

物件 Workbook 被創建。WorkBook對象的 載入CSV 方法用來指示 CSV 檔案的名稱、其格式以及讀取的 CSV 檔案中所使用的分隔符,這些都會儲存在字串陣列中。在這個情境中,逗號被用作分隔符。

之後, 工作表 物件已建立;這裡將存放 CSV 檔案內容。然後檔案重新命名並以新格式存儲。接著,CSV 檔案數據以表格形式排列在工作表中。輸出將如下所示:

使用 C# 讀取 CSV 文件(代碼示例教程),圖 3:數據轉換為 Excel 文件

資料轉換為 Excel 檔案

在 C# .NET 中解析 CSV

CSV 在處理字段中的換行符以及字段可能被引號括起來時存在一些問題,這樣會阻止簡單的字符串分割技術 (Split) 正常工作。(「'」). 相反,IronXL 提供了通過LoadCSV方法中的可選參數來自定義分隔符,請查看 API 文件的 LoadCSV 了解更多詳情。

C# 記錄 — 讀取 CSV 數據

在下面的例子中,foreach 用於迴圈遍歷 CSV 文件中的行,並使用 Console 寫入記錄中的數據。

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
VB   C#

使用C#讀取CSV文件(代碼示例教程),圖4:訪問CSV文件中的數據並顯示在控制台

從 CSV 檔案存取資料並顯示到控制台

將 CSV 文件字串行轉換為 Excel 格式

這個過程很簡單:加載 CSV 文件並保存為 Excel 文件。

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

workbook.SaveAs("CsvToExcelConversion.xlsx")
VB   C#

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

IronXL的WorkBook類表示一個 Excel 表單,並使用此類在 C# 中打開一個 Excel 文件。以下代碼範例將所需的 Excel 文件加載到一個 WorkBook 對象中:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

WorkSheet 物件可以在多個 WorkBooks 中找到。這些是 Excel 文件的工作表。如果活頁簿包含工作表,你可以通過以下方式按名稱獲取它們:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

讀取單元格值的代碼:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
VB   C#

以下的代碼範例可以在載入和讀取工作簿和工作表後更新公式或應用於特定單元格。代碼如下:

// Set Formulas
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
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
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()
VB   C#

結論及IronXL特別優惠

IronXL僅需兩行代碼即可將CSV轉換為Excel,此外還支援C#中的CSV處理。

無需使用Interop,使用IronXL的Excel API變得非常簡單。此外,IronXL還提供了大量功能來與Excel工作簿、工作表和單元格級別進行互動,例如 在熱門格式之間轉換, 儲存格數據格式化, 合併儲存格, 插入數學函數,甚至管理圖表和 添加圖片您可以使用沒有浮水印的啟動 IronXL 試用許可密鑰

許可證起始於 $749,包括一年的免費支援和更新。

IronPDF、IronXL、IronOCR、IronBarcode 和 IronWebscraper 都是...的一部分 Iron Software 套件. Iron Software允許您以折扣價購買整個套件。您可以以兩個工具的價格使用所有這些工具。

這絕對是值得探索的選項。

< 上一頁
如何在 C# 中使用 CSV 解析器
下一個 >
C# 程式化地開啟 Excel 檔案(代碼示例教程)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 1,023,839 查看許可證 >