Read a CSV File in C
IronXL 提供了一行代碼的解決方案,可透過 LoadCSV 方法在 C# 中讀取 CSV 檔案。 它支援自訂分隔符,並可直接轉換為 Excel 格式,以便在 .NET 應用程式中進行無縫資料處理。
快速入門:使用IronXL一行加載並轉換CSV文件
此範例展示如何使用 IronXL 的 LoadCSV 方法讀取 CSV 檔案,並以最少的程式碼將其儲存為 Excel 工作簿。
最小工作流程(5 個步驟)
- 下載並安裝 C# CSV 讀取庫
- 建立一個 C# 或 VB 項目
- 將此頁面的代碼示例添加到您的項目中
- 指定 CSV 路徑和輸出名稱與格式
- 執行專案以檢視文件
在 .NET 應用程式中讀取 CSV 文件
- 安裝用於讀取 CSV 檔案的 C# 庫 (IronXL)
- 在 C# 中讀取 CSV 文件
- 指定文件格式和分隔符
步驟 1
如何安裝 IronXL 函式庫?
在 MVC、ASP 或 .NET Core 中使用 IronXL 讀取 CSV 檔案之前,您需要先安裝 IronXL。 以下是快速攻略。
為什麼要使用 NuGet 套件管理程式?
在 Visual Studio 中,選擇"項目"選單
- 管理 NuGet 套件
- 搜尋
IronXl.Excel - 安裝
有哪些替代安裝方法?
或從 Iron Software 網站下載:https://ironsoftware.com/csharp/excel/packages/IronXL.zip
對於使用 Docker 容器工作的 .NET 開發人員,IronXl.Excel 可以配置在您的 Docker 環境中。 該函式庫也支援在 Azure Functions 和 AWS Lambda 上進行部署,以進行基於雲的 CSV 處理。
操作指南
如何以程式化的方式讀取 CSV 檔案?
現在開始專案!
我需要匯入哪些命名空間?
加入 IronXL 命名空間:
// This namespace is required to access the IronXL functionalities
using IronXL;
// This namespace is required to access the IronXL functionalities
using IronXL;
' This namespace is required to access the IronXL functionalities
Imports IronXL
如何載入和轉換 CSV 檔案?
using IronXL 和 C# 程式化地加入讀取 CSV 檔案的程式碼:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-read.cs
// Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
WorkBook workbook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");
// Access the default worksheet within the loaded workbook
WorkSheet ws = workbook.DefaultWorkSheet;
// Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=",")
' Access the default worksheet within the loaded workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet
' Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx")
有哪些進階 CSV 讀取選項?
IronXL 提供處理各種配置的 CSV 檔案的功能。 您可以指定不同的分隔符(分號、制表符、管道),並處理不同編碼的檔案:
// Example: Reading CSV with custom delimiter and encoding
WorkBook workbook = WorkBook.LoadCSV("data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";", // Using semicolon as delimiter
encoding: Encoding.UTF8);
// Access specific cells after loading
var cellValue = workbook.DefaultWorkSheet["A1"].Value;
// Iterate through rows
foreach (var row in workbook.DefaultWorkSheet.Rows)
{
// Process each row
foreach (var cell in row)
{
Console.WriteLine(cell.Value);
}
}
// Example: Reading CSV with custom delimiter and encoding
WorkBook workbook = WorkBook.LoadCSV("data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";", // Using semicolon as delimiter
encoding: Encoding.UTF8);
// Access specific cells after loading
var cellValue = workbook.DefaultWorkSheet["A1"].Value;
// Iterate through rows
foreach (var row in workbook.DefaultWorkSheet.Rows)
{
// Process each row
foreach (var cell in row)
{
Console.WriteLine(cell.Value);
}
}
Imports System
Imports IronXL
' Example: Reading CSV with custom delimiter and encoding
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv",
fileFormat:=ExcelFileFormat.XLSX,
listDelimiter:=";", ' Using semicolon as delimiter
encoding:=Encoding.UTF8)
' Access specific cells after loading
Dim cellValue = workbook.DefaultWorkSheet("A1").Value
' Iterate through rows
For Each row In workbook.DefaultWorkSheet.Rows
' Process each row
For Each cell In row
Console.WriteLine(cell.Value)
Next
Next
CSV 檔案在處理前是什麼樣子?
LoadCSV 方法如何運作?
建立了一個 Workbook 物件。 LoadCSV 物件的 Workbook 方法指定了要讀取的 CSV 檔案、讀取格式以及分隔符號。 在本例中,使用逗號作為分隔符。
會建立一個 Worksheet 物件,並將 CSV 內容放置其中。 然後,檔案會以新的名稱和格式儲存。 當您需要在不同的試算表格式之間進行轉換時,此流程非常有用。
我可以有效率地處理大型 CSV 檔案嗎?
IronXL 已針對效能進行最佳化,並能有效率地處理大型 CSV 檔案。 對於處理大量資料集的開發人員而言,該資料庫在最近的版本中提供了顯著的效能改善。 處理大型檔案時,請考慮這些最佳實務:
// Reading large CSV files with memory optimization
WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ",");
// Process data in chunks
var worksheet = workbook.DefaultWorkSheet;
int rowCount = worksheet.RowCount;
int batchSize = 1000;
for (int i = 0; i < rowCount; i += batchSize)
{
// Process rows in batches
var endIndex = Math.Min(i + batchSize, rowCount);
for (int j = i; j < endIndex; j++)
{
var row = worksheet.GetRow(j);
// Process individual row
}
}
// Reading large CSV files with memory optimization
WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ",");
// Process data in chunks
var worksheet = workbook.DefaultWorkSheet;
int rowCount = worksheet.RowCount;
int batchSize = 1000;
for (int i = 0; i < rowCount; i += batchSize)
{
// Process rows in batches
var endIndex = Math.Min(i + batchSize, rowCount);
for (int j = i; j < endIndex; j++)
{
var row = worksheet.GetRow(j);
// Process individual row
}
}
Imports System
Imports IronXL
' Reading large CSV files with memory optimization
Dim workbook As WorkBook = WorkBook.LoadCSV("large_dataset.csv",
fileFormat:=ExcelFileFormat.XLSX,
listDelimiter:=",")
' Process data in chunks
Dim worksheet = workbook.DefaultWorkSheet
Dim rowCount As Integer = worksheet.RowCount
Dim batchSize As Integer = 1000
For i As Integer = 0 To rowCount - 1 Step batchSize
' Process rows in batches
Dim endIndex As Integer = Math.Min(i + batchSize, rowCount)
For j As Integer = i To endIndex - 1
Dim row = worksheet.GetRow(j)
' Process individual row
Next
Next
如何將 CSV 資料匯出為其他格式?
閱讀 CSV 檔案後,您可能需要將資料匯出為各種格式。 IronXL 支援多種匯出選項,包括 XLSX 至 CSV 轉換、JSON、XML 及 HTML。 以下是如何匯出成不同格式:
// Load CSV and export to multiple formats
WorkBook workbook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",");
// Export to different formats
workbook.SaveAs("output.xlsx"); // Excel format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
// Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";");
// Load CSV and export to multiple formats
WorkBook workbook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",");
// Export to different formats
workbook.SaveAs("output.xlsx"); // Excel format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format
// Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";");
' Load CSV and export to multiple formats
Dim workbook As WorkBook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",")
' Export to different formats
workbook.SaveAs("output.xlsx") ' Excel format
workbook.SaveAsJson("output.json") ' JSON format
workbook.SaveAsXml("output.xml") ' XML format
' Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAs("output_custom.csv", ";")
如何在 Web 應用程式中使用 CSV 資料?
對於 ASP.NET 開發人員,IronXLL 提供了無縫整合,可在 Web 應用程式中讀取 CSV 檔案。 您可以在 MVC 或 Web API 專案中上傳和處理 CSV 檔案:
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
if (file != null && file.Co/ntentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Com/bine(Server.MapPath("~/App_Data/"), fileName);
file.SaveAs(path);
// Load and process CSV
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Convert to DataTable for easy display
var dataTable = workbook.DefaultWorkSheet.ToDataTable();
// Clean up temporary file
System.IO.File.Delete(path);
return View(dataTable);
}
return RedirectToAction("Index");
}
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
if (file != null && file.Co/ntentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Com/bine(Server.MapPath("~/App_Data/"), fileName);
file.SaveAs(path);
// Load and process CSV
WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");
// Convert to DataTable for easy display
var dataTable = workbook.DefaultWorkSheet.ToDataTable();
// Clean up temporary file
System.IO.File.Delete(path);
return View(dataTable);
}
return RedirectToAction("Index");
}
Imports System.IO
Imports System.Web
Imports IronXL
Public Function UploadCSV(file As HttpPostedFileBase) As ActionResult
If file IsNot Nothing AndAlso file.ContentLength > 0 Then
' Save uploaded file temporarily
Dim fileName As String = Path.GetFileName(file.FileName)
Dim path As String = Path.Combine(Server.MapPath("~/App_Data/"), fileName)
file.SaveAs(path)
' Load and process CSV
Dim workbook As WorkBook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",")
' Convert to DataTable for easy display
Dim dataTable As DataTable = workbook.DefaultWorkSheet.ToDataTable()
' Clean up temporary file
System.IO.File.Delete(path)
Return View(dataTable)
End If
Return RedirectToAction("Index")
End Function
如何處理具有複雜資料的 CSV 檔案?
在處理包含公式、特殊字符或混合資料類型的 CSV 檔案時,IronXL 提供強大的處理能力。 您可以使用公式和適當地格式化儲存格資料:
// Handle CSV with special requirements
WorkBook workbook = WorkBook.LoadCSV("complex_data.csv",
ExcelFileFormat.XLSX,
listDelimiter: ",");
var worksheet = workbook.DefaultWorkSheet;
// Apply formatting to cells
worksheet["A1:A10"].Style.Font.Bold = true;
worksheet["B1:B10"].FormatString = "$#,##0.00"; // Currency format
// Add formulas after loading CSV data
worksheet["D1"].Formula = "=SUM(B1:B10)";
// Handle CSV with special requirements
WorkBook workbook = WorkBook.LoadCSV("complex_data.csv",
ExcelFileFormat.XLSX,
listDelimiter: ",");
var worksheet = workbook.DefaultWorkSheet;
// Apply formatting to cells
worksheet["A1:A10"].Style.Font.Bold = true;
worksheet["B1:B10"].FormatString = "$#,##0.00"; // Currency format
// Add formulas after loading CSV data
worksheet["D1"].Formula = "=SUM(B1:B10)";
Imports IronXL
' Handle CSV with special requirements
Dim workbook As WorkBook = WorkBook.LoadCSV("complex_data.csv", ExcelFileFormat.XLSX, listDelimiter:=",")
Dim worksheet = workbook.DefaultWorkSheet
' Apply formatting to cells
worksheet("A1:A10").Style.Font.Bold = True
worksheet("B1:B10").FormatString = "$#,##0.00" ' Currency format
' Add formulas after loading CSV data
worksheet("D1").Formula = "=SUM(B1:B10)"
圖書館快速訪問
常見問題
如何在 C# 中快速讀取 CSV 檔案?
IronXL 提供了一行代碼的解決方案,可透過 LoadCSV 方法在 C# 中讀取 CSV 檔案。只需使用:WorkBook wb = WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ","); 此程式碼將載入您的 CSV 檔案,並可透過 wb.SaveAs("output.xlsx") 將其儲存為 Excel 工作簿。
CSV 讀取函式庫有哪些安裝方式?
您可透過 Visual Studio 中的 NuGet 套件管理員搜尋「IronXl.Excel」來安裝 IronXL,或直接從 Iron Software 網站下載。此程式庫亦支援 Docker 容器、Azure Functions 及 AWS Lambda,以進行基於雲端的 CSV 處理。
讀取 CSV 檔案時,可以使用自訂分隔符號嗎?
是的,IronXL 支援多種分隔符號,包括分號、制表符和縱橫線。您可以透過 LoadCSV 方法中的 listDelimiter 參數指定分隔符號,例如:WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ";").
要讀取 CSV 檔案,我需要導入哪個命名空間?
您需要在 C# 檔案頂端加入 'using IronXL;',才能存取 IronXL 所有用於讀取和處理 CSV 檔案的功能。
載入 CSV 檔案後,該如何存取特定儲存格的值?
using IronXL 的 LoadCSV 方法載入 CSV 檔案後,您可以透過以下方式存取特定儲存格:var cellValue = workbook.DefaultWorkSheet["A1"].Value; 這讓您能夠從已載入的 CSV 檔案中擷取並操作個別儲存格的資料。
該函式庫在讀取 CSV 檔案時是否支援不同的檔案編碼?
是的,IronXL 支援多種編碼格式,包括 UTF-8。載入 CSV 檔案時,您可以指定編碼參數:WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, encoding: Encoding.UTF8)。
我可以將 CSV 檔案直接轉換為 Excel 格式嗎?
是的,IronXL 支援將 CSV 直接轉換為 Excel 格式。透過 LoadCSV 載入 CSV 檔案後,您可以立即使用 SaveAs 方法將其儲存為 Excel 檔案,並指定 XLSX 或 XLS 等格式。

