使用IRONXL

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

里根普恩
里根普恩
2022年6月29日
已更新 2024年1月29日
分享:

本教程說明如何使用IronXL C#庫在不安裝額外互操作的情況下,高效且有效地讀取CSV文件。

如何在C#中讀取CSV文件

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

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

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

在 NuGet 套件管理器中安裝 IronXL 套件

IronXL 是一個很好的工具,當您需要在 C# 中讀取 CSV 文件時可以使用。 以下的程式碼範例顯示您可以使用逗號或其他分隔符號來讀取 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")
$vbLabelText   $csharpLabel

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

本教程的 CSV 資料

建立了對象WorkBookWorkBook 物件的 LoadCSV 方法用於指定 CSV 檔案的名稱、其格式以及 CSV 檔案中使用的分隔符,這些分隔符被儲存為字串陣列。 在此情境中,逗號被用作分隔符。

在那之後,會創建一個WorkSheet對象; 這裡將存放CSV檔案的內容。 檔案隨後被重新命名並儲存為新格式。 CSV 檔案資料隨後以表格形式排列在工作表中。 輸出將看起來像這樣:

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

資料轉換為Excel文件

在 C# .NET 中解析 CSV

CSV 在欄位處理換行符號以及欄位可能被引號括住的方式上有若干問題,這阻礙了簡單的字串分割技術的運作Split("'")。 相反,IronXL 提供使用 LoadCSV 方法中的可選參數來自訂分隔符,請查看 LoadCSV 的 API 文檔以獲取更多詳細信息。

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
$vbLabelText   $csharpLabel

使用 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")
$vbLabelText   $csharpLabel

使用 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")
$vbLabelText   $csharpLabel

WorkSheet 對象可以在許多 WorkBook 中找到。 這些是 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")
$vbLabelText   $csharpLabel

讀取單元格值的代碼:

// 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
$vbLabelText   $csharpLabel

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

// 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()
$vbLabelText   $csharpLabel

結論及IronXL特別優惠

IronXL 不僅可以在 C# 中處理 CSV,還能僅用兩行程式碼將 CSV 轉換為 Excel。

使用 IronXL 的 Excel API,無需 Interop,操作輕鬆自如。 此外,IronXL 還提供廣泛的功能,用於與 Excel WorkBook、WorkSheet 和 Cells 層級互動,例如在流行格式之間轉換單元格數據格式化合併單元格插入數學函數,甚至管理圖表和添加圖片

您可以使用IronXL 試用授權金鑰在沒有水印的情況下啟動。

許可證起價為$749,並包括一年免費支持和更新。

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

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

里根普恩
軟體工程師
Regan 畢業於雷丁大學,擁有電子工程學士學位。在加入 Iron Software 之前,他的工作角色讓他專注於單一任務;而他在 Iron Software 工作中最喜歡的是他所能承擔的工作範圍,無論是增加銷售價值、技術支持、產品開發或市場營銷。他喜歡了解開發人員如何使用 Iron Software 庫,並利用這些知識不斷改進文檔和開發產品。
< 上一頁
如何在 C# 中使用 CSV 解析器
下一個 >
C# 程式化地開啟 Excel 檔案(代碼示例教程)