using 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. 使用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文件

  • 安裝一個C#程式庫來讀取CSV文件(IronXL)
  • 在C#中讀取CSV文件
  • 指定文件格式和分隔符
How To Work related to Read a CSV File in C

第1步

如何安裝IronXL程式庫?

在使用IronXL在MVC、ASP或.NET Core中讀取CSV文件之前,您需要安裝它。 這裡有一個快速指南。

為什麼我應該使用NuGet Package Manager?

  • 在Visual Studio中,選擇專案選單
  • 管理NuGet包
  • 搜索IronXL.Excel
  • 安裝
Visual Studio NuGet包管理器正在安裝IronXL.Excel程式庫,帶有包詳細資訊和控制台輸出
Figure 1 - IronXL.Excel NuGet Package

有哪些替代安裝方法?

Or download from the Iron Software website: https://ironsoftware.com/csharp/excel/packages/IronXL.zip

對於使用Docker容器進行工作的.NET開發人員,IronXL可在您的Docker環境中配置。 該程式庫還支持在Azure FunctionsAWS 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
$vbLabelText   $csharpLabel

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

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

在處理之前CSV文件看起來怎麼樣?

記事本中的CSV文件顯示動物資料,包括月份、長頸鹿、大象、犀牛欄以及6個月的資料
Figure 2 - A CSV file opened in Notepad

LoadCSV方法如何運作?

建立一個Workbook物件。 Workbook物件指定要讀取的CSV文件、要讀取的格式和分隔符。 在這種情況下,逗號用作分隔符。

建立一個Worksheet物件,放置CSV內容。 然後將文件保存為新名稱和格式。 當您需要在不同的試算表格式之間轉換時,此過程非常有用。

Excel試算表顯示CSV資料,包含月份、長頸鹿、大象和犀牛欄以及6個月的動物數量資料
Figure 3 - The CSV file opened in Excel

我可以有效地處理大型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
$vbLabelText   $csharpLabel

我如何將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)
$vbLabelText   $csharpLabel

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

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

程式庫快速存取

IronXL API參考文件

了解更多並分享如何合併、取消合併和使用IronXL API參考文件處理Excel試算表中的單元格。

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

常見問題

如何快速使用 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。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
Nuget 下載 2,134,203 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

仍在滾動嗎?

想要快速證明嗎? PM > Install-Package IronXL.Excel
運行一個範例 觀看您的資料成為試算表。