使用IRONXL

如何在 .NET Core 中导出到 CSV

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

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 for .NET 简单明了的 C# API,Excel 电子表格可以在.NET 环境中轻松读取、编辑和生成。 IronXL 完全支持 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework。

2.1 IronXL 库的功能

  • IronXL 是 Excel 电子表格的最佳 C# 库之一,可与 .NET Core 和 .NET Framework 配合使用。
  • IronXL 支持几乎所有 .NET Framework,包括控制台、Windows 窗体和 Web 应用程序。
  • Windows、macOS 和 Linux 均与 IronXL 兼容。
  • 可使用 IronXL.Excel 快速、轻松地访问 Excel 文件。
  • IronXL.Excel 可读取 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:配置新项目

配置新项目

可以使用 Framework 下拉菜单选择 .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;

static void main(String [] arg)
{
    ExportToExcel("test.csv");
}

public static void ExportToExcel(string filepath)
{
    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");

    var workbook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workbook.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    workbook.SaveAsCsv(filepath, ";");
    //or 
    var stream = workbook.ToStream();
}
using IronXL;
using System.Data;

static void main(String [] arg)
{
    ExportToExcel("test.csv");
}

public static void ExportToExcel(string filepath)
{
    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");

    var workbook = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = workbook.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    workbook.SaveAsCsv(filepath, ";");
    //or 
    var stream = workbook.ToStream();
}
Imports IronXL
Imports System.Data

Shared Sub main(ByVal arg() As String)
	ExportToExcel("test.csv")
End Sub

Public Shared Sub ExportToExcel(ByVal filepath As String)
	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")

	Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = workbook.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	workbook.SaveAsCsv(filepath, ";")
	'or 
	Dim stream = workbook.ToStream()
End Sub
$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。 此外,还要通过各种渠道发挥作用。

对于所有以编程方式实施的 Microsoft Excel 文档相关操作,IronXL 提供了全面的解决方案。 计算公式、排序字符串或数字、修剪、追加、查找和替换、合并和取消合并、保存文件等都是可能的。 在验证电子表格数据的同时,您还可以建立单元格数据类型。它有助于处理 Excel 数据,并允许您读写文件。

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

推出时,IronXL 的售价为 $749。 用户还可以选择支付一年的订阅费,以获得更新和产品帮助。 IronXL 为不受限制的再分发提供安全保障,但需额外收费。 要查找更准确的定价数据,请访问IronXL的许可页面

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