跳至页脚内容
使用 IRONXL

如何在 .NET Core 中导出到 CSV

1.0 介绍

本文将使用最知名的库之一IronXL ,来对比和比较 .NET 技术以编程方式与 Microsoft Excel 文档交互的不同方法。 它还将构建一个用于读取、写入和导出 Excel 电子表格到 CSV 文件的环境。

2.0 IronXL

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

借助 IronXL 简单易用的 C# API,可以在 .NET 环境中轻松读取、编辑和生成 Excel 电子表格。 IronXL 完全支持 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework。

2.1 IronXL 库功能

  • IronXL 是最优秀的 C# Excel 电子表格库之一,它同时适用于 .NET Core 和 .NET Framework。
  • IronXL 支持几乎所有 .NET Framework,包括控制台、Windows 窗体和 Web 应用程序。
  • IronXL 与 Windows、macOS 和 Linux 均兼容。
  • 使用 IronXL 可以快速轻松地访问 Excel 文件。 IronXL 可以读取 XLSX 文件、CSV 文件、XLS、XSLT、TSV、XLSM 等 Excel 文件格式。 众多功能中包括导入、更新和导出数据集和数据表的功能。
  • IronXL 可以生成 Excel 电子表格的计算结果
  • 对于 Excel 列,IronXL 支持多种数据类型,例如文本、整数、日期、货币、公式和百分比。 IronXL 支持日期、货币、百分比、文本、数字、公式和其他 Excel 列数据类型

3.0 创建 .NET Core 6 项目

在本通讯的后续章节中,您将看到使用 IronXL 库构建 CSV 文件是多么容易。

步骤 1:新建一个项目以生成 CSV 文件。

打开Visual Studio ,从"文件"菜单中选择"新建项目"。

从随后出现的对话框中选择"控制台应用程序".NET 项目模板,然后单击"下一步"。

如何在 .NET Core 中导出为 CSV 文件,图 1:在 Visual Studio 中创建一个新的控制台应用程序 在Visual Studio中创建一个新的控制台应用程序

"项目名称"可以随意填写。 在"位置"部分提供新项目的位置后,单击"下一步"按钮继续。

如何在 .NET Core 中导出为 CSV 文件,图 2:配置新项目 配置新项目

可以使用"框架"下拉菜单选择 .NET Framework。 在这种情况下,长期支持的 .NET 版本是 6.0。接下来,单击"创建"按钮。

如何在 .NET Core 中导出为 CSV 文件,图 3:.NET 目标框架选择 .NET 目标框架选择

安装 IronXL 库,因为后续解析需要用到它。 在包管理器控制台中输入以下命令以完成此操作:

Install-Package IronXL.Excel

如何在 .NET Core 中导出为 CSV 文件,图 4:安装 IronXL 包 安装 IronXL 软件包

另一种方法是使用 NuGet 包管理器搜索"IronXL"包。 在"浏览"选项卡中,在搜索框中输入"IronXL"以搜索 IronXL 库。 从与 IronXL 相关的所有 NuGet 包列表中,选择要下载的包。

如何在 .NET Core 中导出为 CSV 文件?图 5:在 NuGet 包管理器 UI 中搜索并安装 IronXL 包 在 NuGet 包管理器 UI 中搜索并安装 IronXL 包

4.0 将数据导出到 CSV 文件

使用 IronXL,创建 CSV 文件的数据表既简单又快捷。 它便于将数据写入新的 CSV 文件。第一步是包含 IronXL 命名空间,如下面的代码截图所示。 一旦 IronXL 被引入,就可以在代码中使用它的类和方法。

如何在 .NET Core 中导出为 CSV 文件,图 6:包含 IronXL 命名空间 包含 IronXL 命名空间

IronXL可用于创建 Excel 文件,然后将这些文件转换为WorkBook对象。 当它们成为WorkBook类的对象后,就可以用多种方式对它们进行操作。 下面的示例源代码通过将DataTable转换为 Excel 工作表来创建一个 Excel 文件。

using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		ExportToExcel("test.csv")
	End Sub

	' Method to export a DataTable to an Excel sheet which is then saved as a CSV file
	Public Shared Sub ExportToExcel(ByVal filepath As String)
		' Create a DataTable and add columns & rows
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animals", GetType(String))
		table.Rows.Add("Lion")
		table.Rows.Add("Tiger")
		table.Rows.Add("Leopard")
		table.Rows.Add("Cheetah")
		table.Rows.Add("Hyenas")

		' Create a new workbook and get the default worksheet
		Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
		Dim worksheet = workbook.DefaultWorkSheet

		' Add table data to worksheet
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			worksheet("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save worksheet data to a CSV file
		workbook.SaveAsCsv(filepath, ";")

		' Optionally convert workbook to a stream, useful for web applications
		Dim stream = workbook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

上面的 CSV 示例展示了如何将DataTable导出到 CSV 文件。首先创建DataTable ,即创建列标题,然后在创建第一列后,逐行添加数据。将行和列添加到DataTable对象后,即可构建WorkBook对象。 WorkBook对象用于向 Excel 工作表添加数据,然后可以将工作表保存到其他位置。 下一步是初始化WorkSheet对象,该对象与工作簿对象关联。

在将值添加到工作表之前,使用foreach循环从DataTable中读取每个值。 SaveAsCsv函数用于将数据保存到 CSV 文件中,前提是所有数据都已放入工作表中,并且文件名作为参数。 如果需要,可以使用分隔符作为可选参数。 该库随后会协助将数据写入 CSV 文件。除了 Microsoft Excel 之外,还可以使用记事本读取 CSV 文件。 此外, Save方法用于将内容保存为指定的文件格式。

如何在 .NET Core 中导出为 CSV 文件,图 7:输出 Excel 文件 test.csv 输出文件:Excel 文件 test.csv

以上是运行代码示例的输出结果。 截图中显示的是数据表中每一条信息分别添加到新创建的 Excel 表格中。 或者,它也可以作为 Web 应用程序的一部分转换为流,以返回可以从客户端下载的文件。

有关将数据从 DataTable 导出到 Excel 的更多信息,请查看此教程页面。

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

5.0 结论

IronXL是使用最广泛的Excel实用程序之一。 它不依赖于任何其他外部库。 它是独立运行的,无需安装 Microsoft Excel。 此外,它还通过多种渠道发挥作用。

IronXL为所有通过程序实现的 Microsoft Excel 文档相关操作提供全面的解决方案。 计算公式、对字符串或数字进行排序、修剪、追加、查找和替换、合并和取消合并、保存文件等等,这些操作都是可能的。 除了验证电子表格数据外,您还可以设置单元格数据类型。它简化了 Excel 数据的处理,并允许您读取和写入文件。

IronXL 提供免费试用许可证,用户可以免费试用和测试其所有令人惊叹的功能。

IronXL 在发布时以$799价格提供。 用户也可以选择支付一年的订阅费,以获得更新和产品支持。 IronXL 提供无限制再分发的安全保障,但需额外收费。 要查找更精确的价格数据,请访问 IronXL 的许可页面

常见问题解答

如何使用 .NET Core 将数据导出为 CSV 文件?

您可以在 .NET Core 应用程序中使用 IronXL 将数据导出为 CSV 文件。首先,通过 Visual Studio 设置一个新的 .NET Core 项目,通过 NuGet 安装 IronXL,并使用其 WorkBookWorkSheet 对象,通过 SaveAsCsv 方法将数据保存为 CSV 文件。

是否可以在不使用 Microsoft Office 的情况下读取和写入 Excel 文件?

是的,IronXL 允许您在不需要 Microsoft Office 或 Microsoft.Office.Interop.Excel 的情况下读取和写入 Excel 文件。它为 .NET 应用程序中的 Excel 电子表格管理提供了一个独立的解决方案。

在 .NET Core 中使用 IronXL 导出 CSV 的好处是什么?

IronXL 提供了一种简单且高效的方式来处理 .NET Core 中的 CSV 导出。它支持多平台,不需要 Microsoft Office,并提供公式计算、数据排序和大数据集处理等功能。

如何在 .NET Core 项目中安装 IronXL?

要在 .NET Core 项目中安装 IronXL,您可以使用命令 Install-Package IronXL 的包管理器控制台,或在 Visual Studio 的 NuGet 包管理器 UI 中搜索并安装 'IronXL'。

我可以在 Windows 以外的平台上使用 IronXL 吗?

是的,IronXL 兼容多个平台,包括 Windows、macOS 和 Linux。它还支持 Xamarin、Azure、.NET Core 和 .NET Framework 应用程序,使其可以适用于各种环境。

您如何使用 IronXL 处理 Excel 中的大数据集?

IronXL 可以通过利用其强大的 C# API 高效地处理 Excel 中的大数据集。它允许快速的数据操作,支持各种 Excel 格式,并提供数据排序和验证等功能。

IronXL 支持 Excel 公式计算吗?

是的,IronXL 支持 Excel 公式计算。您可以使用 IronXL 的 API 对电子表格数据进行复杂计算,类似于在 Excel 中的操作。

IronXL 有可用的授权选项吗?

IronXL 提供一个免费试用许可证来测试其功能,还有多种授权选项来实现完整功能。这样为开发者提供了选择合适计划的灵活性。

Curtis Chau
技术作家

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

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