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文件
- 安裝一個C#程式庫來讀取CSV文件(IronXL)
- 在C#中讀取CSV文件
- 指定文件格式和分隔符
第1步
如何安裝IronXL程式庫?
在使用IronXL在MVC、ASP或.NET Core中讀取CSV文件之前,您需要安裝它。 這裡有一個快速指南。
為什麼我應該使用NuGet Package Manager?
- 在Visual Studio中,選擇專案選單
- 管理NuGet包
- 搜索
IronXL.Excel - 安裝
有哪些替代安裝方法?
Or download from the Iron Software website: https://ironsoftware.com/csharp/excel/packages/IronXL.zip
對於使用Docker容器進行工作的.NET開發人員,IronXL可在您的Docker環境中配置。 該程式庫還支持在Azure Functions和AWS Lambda上部署以進行基於雲的CSV處理。
教程指南
我如何以程式化方式讀取CSV文件?
現在該進入專案了!
我需要導入什麼名稱空間?
新增IronXL名稱空間:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-2.cs
// This namespace is required to access the IronXL functionalities
using IronXL;
Imports IronXL
如何載入並轉換CSV文件?
新增程式碼以使用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文件。 您可以指定不同的分隔符(分號、制表符、管道符)並處理具有不同編碼的文件:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-4.cs
// Example: Reading CSV with custom delimiter
WorkBook workbook = WorkBook.LoadCSV("data.csv",
fileFormat: ExcelFileFormat.XLSX,
listDelimiter: ";"); // Using semicolon as delimiter
// 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
' Example: Reading CSV with custom delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=";") ' Using semicolon as delimiter
' 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物件。 Workbook物件指定要讀取的CSV文件、要讀取的格式和分隔符。 在這種情況下,逗號用作分隔符。
建立一個Worksheet物件,放置CSV內容。 然後將文件保存為新名稱和格式。 當您需要在不同的試算表格式之間轉換時,此過程非常有用。
我可以有效地處理大型CSV文件嗎?
IronXL針對性能進行了優化,有效地處理大型CSV文件。 對於處理大量資料集的開發人員,該程式庫在近期版本中提供了顯著的性能提升。 處理大文件時,請考慮這些最佳實踐:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-5.cs
// 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。 以下是如何導出到不同格式:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-6.cs
// 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.SaveAsCsv("output_custom.csv", ";");
Imports IronXL
' Load CSV and export to multiple formats
Dim workbook As WorkBook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ","c)
' 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.SaveAsCsv("output_custom.csv", ";"c)
在Web應用程式中處理CSV資料如何?
對於ASP.NET開發人員,IronXL提供在Web應用程式中讀取CSV文件的無縫整合。 您可以在您的MVC或Web API專案中上傳並處理CSV文件:
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(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.ContentLength > 0)
{
// Save uploaded file temporarily
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(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提供了強大的處理能力。 您可以處理公式,並適當地格式化單元格資料:
:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-8.cs
// 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 提供一行解決方案來使用 C# 讀取 CSV 檔案,使用 LoadCSV 方法。簡單使用:WorkBook wb = WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ","); 這樣便載入您的 CSV 檔案,並允許您將其保存為 Excel 活頁簿,使用 wb.SaveAs("output.xlsx")。
有哪些安裝方法可用於 CSV 讀取程式庫?
您可以通過 Visual Studio 的 NuGet Package Manager 安裝 IronXL,搜索 'IronXL.Excel',或直接從 Iron Software 網站下載。該程式庫還支持 Docker 容器、Azure Functions 和 AWS Lambda 用於基於雲端的 CSV 處理。
讀取 CSV 檔案時,我可以使用自訂分隔符號嗎?
是的,IronXL 支持包括分號、Tab 符和管道等多種分隔符號。您可以在 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 支持包括 UTF8 在內的多種編碼。您可以在載入 CSV 檔案時指定編碼參數:WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, encoding: Encoding.UTF8)。
我可以直接將 CSV 檔案轉換為 Excel 格式嗎?
是的,IronXL 允許從 CSV 到 Excel 格式的直接轉換。在使用 LoadCSV 載入 CSV 檔案後,您可以立即使用 SaveAs 方法將其保存為 Excel 檔案,指定格式如 XLSX 或 XLS。

