如何在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 文件之前,您需要安装它。 下面是一个快速攻略。

为什么要使用 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 文件、读取格式和分隔符。 在本例中,使用逗号作为分隔符。

创建一个 Worksheet 对象,将 CSV 内容放置其中。 然后以新的名称和格式保存文件。 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 包管理器搜索 "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 文件后,如何访问特定的单元格值?

使用 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 下载 1,846,091 | 版本: 2026.2 刚刚发布