如何使用 IronXL 在 C# 中讀取 CSV 檔案

Read a CSV File in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL 提供了一行代碼的解決方案,可透過 LoadCSV 方法在 C# 中讀取 CSV 檔案。 它支援自訂分隔符,並可直接轉換為 Excel 格式,以便在 .NET 應用程式中進行無縫資料處理。

快速入門:使用IronXL一行加載並轉換CSV文件

此範例展示如何使用 IronXL 的 LoadCSV 方法讀取 CSV 檔案,並以最少的程式碼將其儲存為 Excel 工作簿。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronXl.Excel

    PM > Install-Package IronXl.Excel
  2. 請複製並執行此程式碼片段。

    WorkBook wb = WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ","); wb.SaveAs("output.xlsx");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronXL

    arrow pointer

在 .NET 應用程式中讀取 CSV 文件

  • 安裝用於讀取 CSV 檔案的 C# 庫 (IronXL)
  • 在 C# 中讀取 CSV 文件
  • 指定文件格式和分隔符
How To Work related to Read a CSV File in C

步驟 1

如何安裝 IronXL 函式庫?

在 MVC、ASP 或 .NET Core 中使用 IronXL 讀取 CSV 檔案之前,您需要先安裝 IronXL。 以下是快速攻略。

為什麼要使用 NuGet 套件管理程式?

在 Visual Studio 中,選擇"項目"選單

  • 管理 NuGet 套件
  • 搜尋 IronXl.Excel
  • 安裝
Visual Studio NuGet 套件管理員安裝 IronXl.Excel 函式庫的套件詳細資訊和控制台輸出
圖 1 - IronXl.Excel NuGet 套件

有哪些替代安裝方法?

或從 Iron Software 網站下載:https://ironsoftware.com/csharp/excel/packages/IronXL.zip

對於使用 Docker 容器工作的 .NET 開發人員,IronXl.Excel 可以配置在您的 Docker 環境中。 該函式庫也支援在 Azure FunctionsAWS 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
$vbLabelText   $csharpLabel

如何載入和轉換 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")
$vbLabelText   $csharpLabel

有哪些進階 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
$vbLabelText   $csharpLabel

CSV 檔案在處理前是什麼樣子?

在記事本中顯示動物資料的 CSV 檔案,包含月、長頸鹿、大象、犀牛欄位和 6 個月的數量資料
圖 2 -記事本中開啟的 CSV 文件

LoadCSV 方法如何運作?

建立了一個 Workbook 物件。 LoadCSV 物件的 Workbook 方法指定了要讀取的 CSV 檔案、讀取格式以及分隔符號。 在本例中,使用逗號作為分隔符。

會建立一個 Worksheet 物件,並將 CSV 內容放置其中。 然後,檔案會以新的名稱和格式儲存。 當您需要在不同的試算表格式之間進行轉換時,此流程非常有用。

Excel 試算表顯示 CSV 資料,欄位為月、長頸鹿、大象和犀牛,包含 6 個月的動物數量資料
圖 3 -在 Excel 中開啟的 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
$vbLabelText   $csharpLabel

如何將 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", ";")
$vbLabelText   $csharpLabel

如何在 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
$vbLabelText   $csharpLabel

如何處理具有複雜資料的 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)"
$vbLabelText   $csharpLabel

圖書館快速訪問

IronXL API 參考文檔

使用便利的 IronXL API 參考文檔,了解更多並分享如何在 Excel 電子表格中合併、取消合併和處理儲存格。

IronXL API 參考文檔
Documentation related to 如何處理具有複雜資料的 CSV 檔案?

常見問題

如何在 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 等格式。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 2,040,239 | 版本: 2026.5 just released
Still Scrolling Icon

還在滾動?

想要快速證明嗎? PM > Install-Package IronXl.Excel
執行一個樣本 看著您的數據變成電子表格。