跳至页脚内容
使用 IRONXL

如何在 C# 中导出文件到 CSV

本文将对比分析 .NET 技术使用最知名的库之一IronXL以编程方式与 Microsoft Excel 文档进行交互的各种方法。 此外,它还将创建一个用于写入、读取和导出 Excel 电子表格到 CSV 文件的设置。

1.1 什么是 .NET Framework?

微软创建了专有的.NET Framework ,这是一个主要与 Microsoft Windows 兼容的软件框架。 在跨平台的 .NET 项目出现之前,它一直是主要的通用语言基础架构 (CLI) 实现。 它提供对多种不同编程语言的语言兼容性,并附带一个名为框架类库 (FCL) 的庞大类库。

1.2 什么是 CSV?

一种名为"逗号分隔值"的文本文件格式使用逗号将值分成不同的列。 表格数据以纯文本形式存储在 CSV 格式文件中,其中每一行通常对应一条数据记录。 在 CSV 文件中,每条记录都有相同数量的字段,字段之间用逗号分隔。

2.0 IronXL 库功能

使用 IronXL for .NET C# Excel 库可以读取 Microsoft Excel 文档并将其转换为 CSV 文件。 用户无需安装 Microsoft Office 或Microsoft.Office.Interop.Excel ,即可使用 IronXL,这是一个独立的 .NET 软件库。 它能够读取多种电子表格格式。

IronXL的简单 C# API 使得在 .NET 环境中读取、编辑和生成 Excel 电子表格变得容易。 IronXL 为 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework 提供全面支持。

  • IronXL 是一个与 .NET Core 和 .NET Framework 都兼容的 C# 库,是 Excel 电子表格的最佳库之一。
  • IronXL 支持几乎所有 .NET Framework,包括 Web 应用程序、Windows 窗体和控制台应用程序。
  • IronXL 可与 Linux、macOS 和 Windows 操作系统一起使用。
  • IronXL 可以快速轻松地访问 Excel 文件。
  • IronXL 能够读取多种 Excel 文件类型,包括 XLSX、CSV、XLS、XLST、TSV、XLSM 等。 导入、更新和导出数据表和数据集的功能只是该库众多功能中的一部分。
  • 对于 Excel 电子表格,IronXL 能够生成计算结果
  • IronXL支持 Excel 列的多种数据类型,包括文本、整数、日期、货币、公式和百分比。
  • IronXL 可以处理多种值,包括日期、货币、百分比、文本、数字、公式以及更多 Excel 列数据类型。

要了解如何将数据导出到 Excel,请参考此教程

3.0 在 Visual Studio 中创建新项目

在使用 IronXL 库之前,请打开Visual Studio并创建一个 .NET 项目。 Visual Studio 可以使用任何版本,但建议使用最新版本。 为了简单起见,本文将使用控制台应用程序作为示例。

如何在 C# 中将文件导出为 CSV,图 1:打开 Visual Studio,转到文件菜单并选择新建项目。 从各种 .NET 项目模板中选择控制台应用程序。 打开 Visual Studio,转到"文件"菜单,然后选择"新建项目"。 从各种 .NET 项目模板中选择"控制台应用程序"。

然后输入项目地点和名称。

如何在 C# 中将文件导出为 CSV 文件,图 2:在 Visual Studio 中创建一个新项目 在 Visual Studio 中创建新项目

可以使用"框架"下拉菜单选择 .NET Framework。 本项目选用.NET Framework 4.7。 接下来,单击创建按钮。

当应用程序生成解决方案时,程序文件program.cs将打开,允许您输入代码并构建/运行程序。

如何在 C# 中将文件导出为 CSV,图 3:成功创建控制台应用程序项目后,将打开 Program.cs 文件。 控制台应用程序项目创建成功后,Program.cs 文件将会打开。

为了测试代码,下一步是添加 IronXL 库。

请安装 IronXL 库,因为下一个修复需要用到它。 为此,请在 NuGet 包管理器控制台中输入以下命令:

Install-Package IronXL -Version 2023.8.29

如何在 C# 中将文件导出为 CSV 文件?图 4:在 NuGet 包管理器控制台中安装 IronXL 包 在 NuGet 程序包管理器控制台中安装 IronXL 程序包

另一种方法是使用 NuGet 包管理器查找包"IronXL",然后从与 IronXL 连接的所有 NuGet 包列表中选择要下载的必要包。

如何在 C# 中将文件导出为 CSV 文件?图 5:使用 NuGet 包管理器安装 IronXL 包 使用 NuGet 包管理器安装 IronXL 包

4.0 导出为 CSV 文件

IronXL可以轻松快捷地将字符串数组创建为 CSV 文件。 因此,编写 CSV 文件变得更加简单。 首先,包含 IronXL 命名空间,如下面的代码截图所示。 然后,在展示完以下代码后,使用 IronXL 的类和方法。

如何在 C# 中将文件导出为 CSV 文件,图 6:包含 IronXL 命名空间 包含 IronXL 命名空间

可以使用 IronXL 创建 Excel 文件,然后将其转换为工作簿对象。 该对象提供了多种操作方法。 以下代码示例通过将数组字符串转换为 Excel 工作表来生成 Excel 文件。

using IronXL;
using IronXL.Options;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of student names
        string[] students = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };

        // Create a new workbook with an Excel file format of XLS
        var workBook = WorkBook.Create(ExcelFileFormat.XLS);

        // Get the default worksheet (where student data will be written)
        var workSheet = workBook.DefaultWorkSheet;

        // Start adding data to worksheet from row 1
        int rowCount = 1;
        foreach (var student in students)
        {
            // Set the value in column A for student ID
            workSheet["A" + rowCount].Value = rowCount.ToString();

            // Set the value in column B for student name
            workSheet["B" + rowCount].Value = student.ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("Sample.csv", ";");

        // Alternately, convert the workbook to a stream
        var stream = workBook.ToStream();
    }
}
using IronXL;
using IronXL.Options;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of student names
        string[] students = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };

        // Create a new workbook with an Excel file format of XLS
        var workBook = WorkBook.Create(ExcelFileFormat.XLS);

        // Get the default worksheet (where student data will be written)
        var workSheet = workBook.DefaultWorkSheet;

        // Start adding data to worksheet from row 1
        int rowCount = 1;
        foreach (var student in students)
        {
            // Set the value in column A for student ID
            workSheet["A" + rowCount].Value = rowCount.ToString();

            // Set the value in column B for student name
            workSheet["B" + rowCount].Value = student.ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("Sample.csv", ";");

        // Alternately, convert the workbook to a stream
        var stream = workBook.ToStream();
    }
}
Imports IronXL
Imports IronXL.Options
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Array of student names
		Dim students() As String = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" }

		' Create a new workbook with an Excel file format of XLS
		Dim workBook = WorkBook.Create(ExcelFileFormat.XLS)

		' Get the default worksheet (where student data will be written)
		Dim workSheet = workBook.DefaultWorkSheet

		' Start adding data to worksheet from row 1
		Dim rowCount As Integer = 1
		For Each student In students
			' Set the value in column A for student ID
			workSheet("A" & rowCount).Value = rowCount.ToString()

			' Set the value in column B for student name
			workSheet("B" & rowCount).Value = student.ToString()
			rowCount += 1
		Next student

		' Save the workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("Sample.csv", ";")

		' Alternately, convert the workbook to a stream
		Dim stream = workBook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

上述代码示例会将数组导出到 Excel 文件。列标题在数组构建完成后创建。 在创建第一列之后,再逐行添加后续行。 将数据添加到数组字符串后,就会创建WorkBook对象。 您可以使用WorkBook对象向 Excel 工作表添加数据,然后将其保存到其他位置。 目标是通过创建WorkSheet对象来创建工作表,该对象可以链接到工作簿对象。

在将每个项目添加到电子表格之前,使用foreach循环从数组字符串中读取每个项目。 当所有数据都输入到工作表中后,使用SaveAsCsv方法将数据保存为 CSV 文件。 除了分隔符之外,文件名和位置也可以作为可选参数提供。 该库随后会协助将数据写入新的 CSV 文件。如果您想读取 CSV 文件而不是使用 Microsoft Excel,可以使用记事本。 IronXL 还支持使用Save方法将数据存储为多种文件格式,例如 XLS、CSV 和 XLSX。 或者可以将工作簿转换为数据流,然后将数据写入所需位置。

输出 CSV 文件

如何在 C# 中将文件导出为 CSV 文件,图 7:输出的 Excel 文件 输出 Excel 文件

上面显示的是运行代码示例的输出结果。 截图中新生成的 Excel 表格中,字符串数组中的每个数据项都是独立添加到表格中的。

要了解有关如何使用 IronXL 将数据导出为 CSV 的更多信息,请参阅此分步教程

5.0 结论

IronXL是Excel中最受欢迎的插件之一。 它不依赖任何其他外部库。 它是独立运行的,无需安装 Microsoft Excel。 它通过多个渠道运作。

IronXL为所有通过程序执行的 Microsoft Excel 文档相关任务提供完整的解决方案。 可以进行计算、对字符串或数字进行排序、修剪、添加、定位和替换、合并和取消合并、保存文件等等。 除了检查电子表格数据外,您还可以定义单元格数据类型。 它可以读取和写入文件,使处理 Excel 数据更加容易。

IronXL 提供免费试用许可证,让用户有机会免费试用其所有主要功能。

IronXL 在发布时提供$799 。 如果用户想要获得软件更新和帮助,他们也可以选择支付一年的订阅费。 IronXL 提供额外付费的无限次再分发保护。 如需了解更准确的定价信息,请访问 IronXL 的许可页面

常见问题解答

我如何在 C# 中以编程方式将 Excel 数据导出为 CSV?

要在 C# 中以编程方式将 Excel 数据导出为 CSV,可以使用 IronXL。首先,在您的 C# 程序中创建工作簿和工作表,用数据填充它,然后使用 SaveAsCsv 方法将数据导出为 CSV 文件。

使用 C# 导出为 CSV 是否需要安装 Microsoft Excel?

不,不需要安装 Microsoft Excel。IronXL 是一个独立的 .NET 库,允许您读取、编辑和导出 Excel 文件为 CSV,而不需要 Microsoft Office 或 Microsoft.Office.Interop.Excel

如何在 Visual Studio 项目中安装 IronXL?

您可以通过使用 NuGet 包管理器控制台来在 Visual Studio 项目中安装 IronXL。运行命令 Install-Package IronXL -Version 2023.8.29 以将 IronXL 添加到您的项目。

使用 IronXL 处理 C# 中的 Excel 任务有哪些好处?

IronXL 提供了用于处理 C# 中 Excel 任务的强大功能集,如读取、编辑和导出 Excel 电子表格为 CSV 文件。它支持多种 .NET 框架和操作系统,使其能适应不同环境而无需外部库。

IronXL 能处理 Excel 文件中的计算和数据操作吗?

是的,IronXL 可以处理 Excel 文件中的计算、排序、合并以及不同数据类型的管理,为与 Excel 相关的任务提供全面的解决方案。

IronXL 支持哪些平台进行 Excel 集成?

IronXL 支持多个平台,包括 .NET Core、.NET Framework、Xamarin、Linux、macOS、Azure 和 Windows,允许在不同系统上灵活部署。

IronXL 可以读取和写入哪些文件格式?

IronXL 可以读取和写入各种 Excel 文件格式,包括 XLSX、CSV、XLS、XLST、TSV、XLSM 等,便于无缝的数据集成和导出。

IronXL 有试用版吗?

是的,IronXL 提供了一个免费试用版,允许您在购买完整许可证前探索其功能和能力。

如何使用 C# 将数据数组转换为 CSV 文件?

使用 IronXL,您可以将数据数组转换为 Excel 工作表,然后使用 SaveAsCsv 方法将其导出为 CSV 文件,使数据转换直接而高效。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

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