如何在C#中使用IronXL读取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 文件

  • 安装用于读取 CSV 文件的 C# 库 (IronXL)
  • 在 C# 中读取 CSV 文件
  • 指定文件格式和分隔符
How To Work related to Read a CSV File in C

步骤1

如何安装 IronXL 库?

在 MVC、ASP 或 .NET Core 中使用 IronXL 读取 CSV 文件之前,您需要安装它。 下面是一个快速攻略。

为什么要使用 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 命名空间:

: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 个月的种群数据
图 2 -记事本中打开的 CSV 文件

LoadCSV 方法如何工作?

创建 Workbook 对象。 LoadCSV 方法指定要读取的 CSV 文件、要读取的格式以及分隔符。 在本例中,使用逗号作为分隔符。

创建一个 Worksheet 对象来放置 CSV 内容。 然后以新的名称和格式保存文件。 当您需要在不同的电子表格格式之间进行转换时,这一过程非常有用。

Excel 电子表格显示 CSV 数据,其中列有月、长颈鹿、大象和犀牛以及 6 个月的动物数量数据
图 3 -在 Excel 中打开的 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
$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.Excel 可为 在 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 提供了使用 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 支持包括 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 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 2,134,203 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronXL.Excel
运行示例 观看您的数据变成电子表格。