如何在C#中使用IronXL讀取CSV文件

在 C# 中讀取 CSV 文件

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.Excel 的 LoadCSV 方法讀取 CSV 檔案,並以最少的程式碼將其儲存為 Excel 工作簿。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    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 在 C# 中讀取 CSV 文件

步驟 1

如何安裝 IronXL 函式庫?

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

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

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

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

有哪些替代安裝方法?

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

For .NET developers working with Docker containers, IronXL can be configured in your Docker environment. The library also supports deployment on Azure Functions and AWS Lambda for cloud-based CSV processing.


操作指南

如何以程式化的方式讀取 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 檔案?

使用 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 物件。 Workbook 物件的 LoadCSV 方法指定要讀取的 CSV 檔案、讀取格式以及分隔符。 在本例中,使用逗號作為分隔符。

在放置 CSV 內容的地方會建立一個 Worksheet 物件。 然後,檔案會以新的名稱和格式儲存。 This process is useful when you need to convert between different spreadsheet formats.

Excel 試算表顯示 CSV 資料,欄位為月、長頸鹿、大象和犀牛,包含 6 個月的動物數量資料
圖 3 -在 Excel 中開啟的 CSV 文件

我可以有效率地處理大型 CSV 檔案嗎?

IronXL 已針對效能進行最佳化,並能有效率地處理大型 CSV 檔案。 For developers working with substantial datasets, the library offers significant performance improvements in recent versions. 處理大型檔案時,請考慮這些最佳實務:

// 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 supports multiple export options including XLSX to CSV conversion, JSON, XML, and 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 資料?

For ASP.NET developers, IronXL provides seamless integration for reading CSV files in web applications. 您可以在 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 提供強大的處理能力。 You can work with formulas and format cell data appropriately:

// 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 Package Manager 搜尋「IronXL.Excel」來安裝 IronXL,或是直接從 Iron Software 網站下載。該函式庫也支援 Docker containers、Azure Functions 和 AWS Lambda,以進行基於雲端的 CSV 處理。

讀取 CSV 檔案時,可以使用自訂的分隔符嗎?

是的,IronXL 支援各種分隔符,包括分號、制表符和管道。您可以使用 LoadCSV 方法中的 listDelimiter 參數指定分隔符,例如WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ";").

CSV 讀取功能需要匯入哪些命名空間?

您需要在 C# 檔案的頂端加入「使用 IronXL;」,才能存取 IronXL 讀取和處理 CSV 檔案的所有功能。

載入 CSV 檔案後,如何存取特定的儲存格值?

使用 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.Excel 允許從 CSV 直接轉換為 Excel 格式。使用 LoadCSV 載入 CSV 檔案後,您可以立即使用 SaveAs 方法將其儲存為 Excel 檔案,並指定 XLSX 或 XLS 等格式。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。

準備好開始了嗎?
Nuget 下載 1,846,091 | 版本: 2026.2 剛剛發布