跳至页脚内容
使用 IRONXL

如何在 C# 中将 DataTable 导出到 CSV

IronXL 是一个流行的库,它允许开发人员在 C# .NET 技术中与 Microsoft Excel 文档(包括 CSV 文件)进行交互,而无需安装 Microsoft Excel。 它能够自动将已注册的类型转换为 CSV 文件,并能够使用自定义结构写入 CSV 文件。

IronXL 库功能

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

借助 IronXL 的用户友好型 C# API,您可以在 .NET 环境中快速读取、修改和创建 Excel 电子表格文件。 IronXL 完全支持 .NET Core、.NET Framework、Xamarin、移动平台、Linux、macOS 和 Azure。

  • 领先的 .NET Core 和 .NET Framework Excel 电子表格库(适用于 C#)包括 IronXL。
  • IronXL 支持几乎所有 .NET Framework,包括控制台、Windows Forms 和 Web。
  • IronXL 可在多种操作系统上运行,包括 Windows、Linux 和 macOS。
  • IronXL 让读取 Excel 文件变得简单快捷。
  • IronXL 支持读取不同的 Excel 文件格式,包括 XLSX 文件、XLS、CSV、TSV、XLST、XLSM 文件等。 我们还可以加载、修改、导出数据表、导出数据集等等。
  • IronXL 可以导出和保存具有多种后缀的文件,包括 XLS、CSV、TSV、JSON 等。
  • IronXL 可以生成Excel 计算结果
  • IronXL 支持多种Excel 列数据格式,包括文本、数字、公式、日期、货币和百分比。

更多详情请访问这里

1. 在Visual Studio中创建新项目

在 Visual Studio 中,必须先创建一个 .NET 项目才能使用 IronXL 框架。 任何版本的 Visual Studio 都可以使用,但建议使用最新版本。 根据您的需要,您可以构建类似 Windows Forms 的应用程序或不同的项目模板。 为了简单起见,本课程将使用控制台应用程序。

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

之后,输入项目名称和地点。

如何在 C# 中将 DataTable 导出为 CSV 文件,图 2:配置新项目 配置新项目

接下来请选择以下结构。 本项目将使用 .NET Core 6。

如何在 C# 中将数据表导出为 CSV 文件,图 3:选择 .NET Framework 版本 选择.NET Framework版本

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

如何在 C# 中将数据表导出为 CSV 文件,图 4:新建的控制台应用程序项目 新创建的控制台应用程序项目

然后就可以添加该库并使用它来评估代码。

2. 安装 IronXL 库

下载和安装 IronXL 库有四种方法。

其中包括:

  • 通过 Visual Studio 安装
  • 使用 Visual Studio 包管理器控制台进行安装
  • 直接从 NuGet 网站下载
  • 直接从 IronXL 网站下载

使用 Visual Studio 安装 IronXL

使用 NuGet 包管理器可以安装 IronXL 模块。 要找到 IronXL,您必须先启动 NuGet 包管理器,然后在浏览窗格中查找。 从搜索结果中选择 IronXL 进行安装。 之后,IronXL 库就可以使用这个应用程序了。

下图演示了如何启动 Visual Studio 的 NuGet 包管理器。

如何在 C# 中将数据表导出为 CSV 文件,图 5:导航至 NuGet 包管理器 导航到 NuGet 包管理器

如何在 C# 中将数据表导出为 CSV 文件?图 6:在 NuGet 包管理器 UI 中安装 IronXL 包 在 NuGet 包管理器 UI 中安装 IronXL 包

使用 Visual Studio NuGet 包管理器控制台安装 IronXL

许多人喜欢使用游戏主机来完成任务。 因此,终端安装也是一种选择。 要使用命令行安装 IronXL,请按照以下说明操作。

  • 在 Visual Studio 中,导航至"工具" > "NuGet 包管理器" >"包管理器界面"。
  • 在软件包管理器的控制台选项卡中输入以下命令:

    Install-Package IronXL.Excel
  • 等待 IronXL 下载并安装到当前项目中。

如何在 C# 中将数据表导出为 CSV 文件?图 7:在程序包管理器控制台 UI 中安装 IronXL 程序包 在软件包管理器控制台界面中安装 IronXL 软件包

直接从 NuGet 网站下载 IronXL

第三种选择是直接从网站下载 NuGet 包。

  • 访问官方 NuGet 链接
  • 下载包选择位于右侧菜单中。
  • 双击已保存的文件,即可立即安装。
  • 之后重新加载解决方案,并开始在项目中使用它。

直接从 IronXL 网站获取

要直接从网站下载最新软件包,请点击此链接下载 IronXL ZIP 文件。 此链接将下载包含最新版本 IronXL 库 DLL 的 ZIP 文件。 下载完成后,将 ZIP 文件的内容解压到您选择的任何目录中。

下载文件后,要将其添加到项目中,请按照以下步骤操作。

  • 在解决方案窗口中,右键单击项目。
  • 选择"引用",然后导航到包含 IronXL DLL 的已解压文件夹。
  • 选择 DLL,然后单击"确定"将其作为引用添加到活动项目中。

3. 导出为 CSV 文件

使用 IronXL 可以轻松快速地将数据表创建为 CSV 文件。 它有助于将数据写入新的 CSV 文件。

首先,如下面的代码图像所示,应包含 IronXL 命名空间才能使用 IronXL 类和方法。

如何在 C# 中将数据表导出为 CSV 文件,图 8:添加通用命名空间 添加通用命名空间

可以使用 IronXL 创建 Excel 文件,然后将其转换为WorkBook对象。 然后将它们变成物体后,对它们进行各种操作。 下面的示例代码会将DataTable转换为 Excel 工作表,从而创建一个 Excel 文件。

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data

' Entry point of the application
Shared Sub Main(ByVal args() As String)
	' Specify the file path for the CSV file output
	ExportToExcel("H:\test.csv")
End Sub

' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
	' Create a DataTable and add columns and rows
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Fruits", GetType(String))
	table.Rows.Add("Apple")
	table.Rows.Add("Orange")
	table.Rows.Add("Strawberry")
	table.Rows.Add("Grapes")
	table.Rows.Add("Watermelon")
	table.Rows.Add("Bananas")
	table.Rows.Add("Lemons")

	' Create a new WorkBook and add the DataTable data to it
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		' Write each item from the DataTable into the worksheet starting from cell A1
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	' Save the workbook as a CSV file with a specified delimiter
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

以上代码将DataTable导出到 Excel 文件。列标题在DataTable创建完成后自动生成。 然后,在确定第一列之后,逐行添加后续行。 在向DataTable对象添加列和行以保存这些数据之后,就会创建WorkBook对象。 然后创建WorkSheet对象,并将其添加到WorkBook对象中。

使用foreach循环读取DataTable中的每个值,然后将其添加到WorkSheet 。 将所有值添加到工作表后,使用SaveAsCsv方法将它们保存到 CSV 文件中;同时,我们还可以将分隔符和文件名以及位置作为参数给出。

如何在 C# 中将数据表导出为 CSV 文件,图 9:输出的 CSV 文件 输出 CSV 文件

上面显示的是运行代码示例的输出结果。 在截图中,数据表中的每一条数据都被单独添加到新生成的 Excel 表格中。

要了解有关 IronXL 教程的更多信息,请点击此链接了解如何导出到 Excel 格式

结论

IronXL是Excel中最受欢迎的工具之一。 它不依赖于任何其他外部来源的库。 它是独立运行的,无需安装微软Excel。 它通过多个渠道运营。

IronXL 提供了一个一体化解决方案,用于以编程方式实现所有与 Microsoft Excel 文档相关的任务。 您可以执行公式计算、字符串或数字排序、修剪和追加、查找和替换、合并和取消合并、保存文件等操作。您还可以设置单元格数据格式并验证电子表格数据。 它还支持读写 CSV 文件,帮助您像处理 Excel 数据一样处理数据。

IronXL 的起售价为$799 。 它还为用户提供支付一年订阅费以获得产品支持和更新的选项。 IronXL 提供额外付费的无限制再分发安全保障。 如需了解更详细的定价信息,请访问此许可页面

常见问题解答

我如何在 C# 中将 DataTable 导出到 CSV 文件?

您可以使用 IronXL 通过创建 WorkBook 并将数据导出到工作表对象来将 DataTable 导出为 CSV 文件。这允许无缝转换和导出,而无需 Microsoft Excel。

我可以使用此库导出哪些文件格式?

IronXL 允许将数据导出为多种格式,如 XLS、CSV、TSV 和 JSON,提供了处理不同数据需求的灵活性。

是否可以使用此库执行类似 Excel 的操作?

是的,IronXL 支持类似 Excel 的操作,如公式计算、数据排序和文件保存,使其成为与 Excel 相关的编程任务的综合工具。

我需要安装 Microsoft Excel 才能使用此库吗?

不,IronXL 是一个独立的 .NET 库,不需要安装 Microsoft Excel,开发人员可以直接在他们的 C# 应用程序中操作 Excel 文档。

哪些平台与此库兼容?

IronXL兼容多个平台,包括.NET Core、.NET Framework、Xamarin以及Windows、Linux和macOS。

如何在我的项目中安装 IronXL 库?

可以通过访问 NuGet 包管理器或直接从 NuGet 或 IronXL 网站下载来在 Visual Studio 中将 IronXL 安装到 .NET 项目中。

有哪些可用的定价选项?

IronXL 提供起始价格,选择订阅一年,包括产品支持和更新,提供持续的支持和最新功能的访问。

Curtis Chau
技术作家

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

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