使用IRONXL

如何在C#中将文件导出为CSV

雷根·彭
雷根·彭
2023年十一月14日
更新 2024年八月23日
分享:

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

1.1 什么是 .NET Framework?

微软创建了专有的.NET Framework,这是一种主要与微软Windows兼容的软件框架。 它一直是主要的共通语言基础设施(CLI)实现,直到跨平台的.NET项目取而代之。 它提供跨多种不同编程语言的语言兼容性,并附带一个名为框架类库(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中创建新项目

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

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

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

一旦控制台应用程序项目创建成功,Program.cs 文件将打开。

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

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

Install-Package IronXL.Excel

如何在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 后,在下面的代码中使用 IronXL 的类和方法。

如何在C#中导出文件到CSV,第6步:包含IronXL的命名空间

包括 IronXL 命名空间

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

using IronXL;
using IronXL.Options;
using System.Data;

static void Main ( string [ ] args ) { 
    string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
    var workBook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workBook.DefaultWorkSheet;
    int rowCount = 1;
    foreach(var student in students)
    {
        writer ["A" + (rowCount)].Value = rowCount.ToString();
        writer ["B" + (rowCount)].Value = student.ToString();
        rowCount++;
    }
    workBook.SaveAsCsv("Sample.csv", ";");
    // or
    var stream = workBook.ToStream();
}
using IronXL;
using IronXL.Options;
using System.Data;

static void Main ( string [ ] args ) { 
    string [] students = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };
    var workBook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workBook.DefaultWorkSheet;
    int rowCount = 1;
    foreach(var student in students)
    {
        writer ["A" + (rowCount)].Value = rowCount.ToString();
        writer ["B" + (rowCount)].Value = student.ToString();
        rowCount++;
    }
    workBook.SaveAsCsv("Sample.csv", ";");
    // or
    var stream = workBook.ToStream();
}
Imports IronXL
Imports IronXL.Options
Imports System.Data

Shared Sub Main(ByVal args() As String)
	Dim students() As String = {"AAA", "BBB", "CCC", "DDD", "EEE", "FFF" }
	Dim workBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = workBook.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each student In students
		writer ("A" & (rowCount)).Value = rowCount.ToString()
		writer ("B" & (rowCount)).Value = student.ToString()
		rowCount += 1
	Next student
	workBook.SaveAsCsv("Sample.csv", ";")
	' or
	Dim stream = workBook.ToStream()
End Sub
$vbLabelText   $csharpLabel

上述代码-CSV 示例将数组导出到 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 结论

最受欢迎的Excel附加组件之一是IronXL。 它不依赖于任何其他外部库。 翻译内容自成一体,无需安装 Microsoft Excel。 它通过多种渠道运作。

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

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

IronXL 在发布时以 $749 提供。 如果用户希望获得软件的更新和帮助,也可以选择支付一年的订阅费。 IronXL 可提供无限制再分发的保护,但需支付额外费用。 如需获取更准确的定价信息,请访问IronXL的许可证页面

雷根·彭
软件工程师
Regan毕业于雷丁大学,拥有电子工程学士学位。在加入Iron Software之前,他的前工作职位要求他专注于单一任务;他在Iron Software最喜欢的是能进行多种工作,无论是增加销售价值、技术支持、产品开发还是营销。他喜欢了解开发人员如何使用Iron Software的库,并利用这些知识不断改进文档和开发产品。
< 前一页
如何在 C# 中以格式导出到 Excel
下一步 >
如何在C#中编辑电子表格