使用IRONXL

如何在C#中将数据表导出为CSV

雷根·彭
雷根·彭
2023年四月19日
更新 2024年二月20日
分享:

介绍

IronXL for .NET 是一个流行的库,允许开发人员在不需要安装 Microsoft Excel 的情况下,通过 C# .NET 技术与 Microsoft Excel 文档(包括 CSV 文件)进行交互。 它可以自动将注册类型转换为 CSV 文件,并编写具有自定义结构的 CSV 文件。

IronXL 库功能

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

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

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

    有关更多详细信息,请访问此处

1.在 Visual Studio 中创建新项目

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

如何在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,请遵守以下说明。

  • 导航到 工具 > NuGet 包管理器 > Visual Studio 中的包管理器界面。
  • 在软件包管理器的控制台选项卡中输入以下命令:
    :ProductInstall
  • 等待 IronXL 下载并安装到活动项目中。

    如何在C#中将Datatable导出为CSV,图7:在Package Manager Console UI中安装IronXL包

    在包管理器控制台 UI 中安装 IronXL 包

直接从 NuGet 网站下载 IronXL

NuGet 软件包可作为第三种选择直接从网站下载。

  • 访问官方 NuGet 链接
  • 可在右侧菜单中选择下载软件包。
  • 点击两次保存的文件。文件将立即安装。
  • 之后重新加载答案并开始在项目中使用。

直接从 IronXL 网站获取

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

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

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

3.导出为 CSV 文件

使用 IronXL 可以方便快捷地将 DataTables 创建为 CSV 文件。 它有助于将数据写入新的 CSV 文件。

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

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

添加常用命名空间

可以使用IronXL创建Excel文件,然后将它们转换为WorkBook对象。 然后在将其转化为对象后对其进行各种操作。 下面的示例代码将通过将DataTable转换为Excel工作表来构建Excel文件。

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

static void Main(String [] arg)
{
    ExportToExcel("H:\\test.csv");
}

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

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

static void Main(String [] arg)
{
    ExportToExcel("H:\\test.csv");
}

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

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

Shared Sub Main(ByVal arg() As String)
	ExportToExcel("H:\test.csv")
End Sub

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

	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
		writer ("A" & (rowCount)).Value = row (0).ToString()
		rowCount += 1
	Next row
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

上面的代码将DataTable导出为Excel文件。一旦创建了DataTable,就会创建列标题。 然后,在建立第一列后逐行添加。 WorkBook对象是在将列和行添加到DataTable对象以保存这些数据之后创建的。 然后构建WorkSheet对象,并添加到WorkBook对象中。

在将值添加到WorkSheet之前,每个来自DataTable的值都会被读取并通过foreach循环添加。 将所有值添加到工作表后,使用SaveAsCsv方法将其保存为CSV文件;同时,我们还可以将分隔符和带位置的文件名作为参数提供。

如何在 C# 中将 Datatable 导出为 CSV,图 9:输出 CSV 文件

输出 CSV 文件

运行代码示例的输出结果如上图所示。 在截图中,数据表中的每一条数据都被单独添加到了新形成的 Excel 表中。

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

结论

IronXL.Excel 是最受欢迎的 Excel 工具之一。 它不依赖于任何其他外部来源的库。 它是自主的,不需要安装 Microsoft Excel。 该项目涉及多个渠道。

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

IronXL 的起始价格为 $749。 用户还可以选择支付一年的订阅费,以获得产品帮助和更新。 IronXL 提供不受限制的再分发安全保障,但需支付额外费用。 要研究更详细的价格信息,请访问此许可页面

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