跳至页脚内容
使用 IRONXL

C# 最快的方法将 DataTable 导出到 Excel

在使用电子表格时,Microsoft Excel 应用程序是一款流行的电子表格工具,旨在以表格格式管理大型数据集。 它提供了强大的功能,例如复杂的计算、通过图表和图形进行数据可视化、数据透视表,以及通过 Visual Basic for Applications (VBA) 实现自动化。 凭借其强大的数据分析和可视化工具,Excel 已成为各行各业的首选工具。 使用 Excel,您可以轻松创建、编辑、查看和共享文件,从而简化您的数据管理任务。

在 C# 中,ADO.NET 库中的 DataTable 对象表示程序中的表格数据,很像 Excel 工作表。 它将数据整理成行和列,便于操作和导出。 与 Excel 一样,DataTable 支持筛选、排序和格式化选项,使其成为 C# 中管理数据范围的首选工具。 但是,DataTable 是在运行时创建的,除非导出为更永久的格式(例如 Excel 文件或 CSV 文件),否则在关闭应用程序时其数据将会丢失。

今天,我们将探讨如何在 C# 中创建 DataTable,并使用功能强大的 .NET Excel 库 IronXL 将其数据导出到 Excel 文档。

IronXL:一个 .NET Excel 库

IronXL是一个 C# .NET 库,它简化了创建 Excel 文件的过程。 使用 IronXL,您可以创建新的电子表格、编辑现有的电子表格、使用 Excel 公式、设置电子表格单元格的样式等等。 IronXL 功能丰富,让以编程方式处理 Excel 文件变得轻而易举,而且最重要的是,它无需 Microsoft Office Interop 即可运行。这意味着无需安装 Microsoft Office 或任何其他特殊依赖项。

使用 IronXL,您可以将数据保存或导出为不同的格式,例如 XLS 和 XLSX、CSV 数据和 TSV、JSON、XML 和 HTML、二进制和字节数组。 它还具有强大的工作簿安全功能,例如添加权限和密码,并允许您编辑工作簿元数据。

将数据表数据导出到 Excel 文件的步骤

前提条件

要在 C# 中使用 IronXL 将数据从 DataTable 导出到 Excel 文件,我们需要在本地计算机上安装以下组件。 让我们逐一查看。

  1. Visual Studio - Visual Studio 是 C# 编程的 IDE,必须安装。 您可以从Visual Studio 网站下载并安装最新版本。

    • 设置好 IDE 后,需要创建一个控制台应用程序/Windows 窗体,以便将数据表导出到 Excel。 以下截图展示了如何创建项目。

创建项目

 现在,请选择您的项目类型。 在我们的示例中,我们将创建一个控制台应用程序。 

控制台应用程序

 给项目命名并选择保存位置。

项目名称

 最后,选择您的 .NET Framework,然后单击"创建"。

.NET框架

 在最后一个屏幕截图中点击"创建"后,将创建名为**"DemoApp"**的项目。
  1. IronXL 库- 必须下载 IronXL 库并将其安装到 Visual Studio 项目中。 有很多方法可以做到这一点。

    *使用 Visual Studio - 它提供了 NuGet 包管理器来安装 IronXL。 您可以通过"工具"菜单或"解决方案资源管理器"访问它。 以下截图有助于安装 IronXL。 首先,导航到顶部栏中的"工具",或者在解决方案资源管理器中单击鼠标右键。

解决方案探索器

工具 - NuGet 包管理器

 转到"管理解决方案的 NuGet 程序包",然后搜索 IronXL。 然后,您只需按下"安装"按钮,IronXL 库就会添加到您的项目中。 

浏览 IronXL

*开发人员命令提示符- 从 Visual Studio 工具菜单或 Visual Studio 文件夹打开开发人员命令提示符。 输入以下命令,即可在您的项目中下载并安装 IronXL:

 ```shell
 PM > Install-Package IronXL.Excel
 ```

*直接从 NuGet 包管理器获取 - 访问此 URLhttps://www.nuget.org/packages/ironxl.excel/下载 IronXL。

3.添加必要的命名空间- 要创建 DataTable 并使用 IronXL,两者都应该在 Program.cs 文件的顶部引用。

   using IronXL; // Add reference to the IronXL library
   using System.Data; // Add reference to System.Data for DataTable
   using IronXL; // Add reference to the IronXL library
   using System.Data; // Add reference to System.Data for DataTable
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

所有先决条件满足后,就可以将数据从数据表导出到 Excel 表格了。

在 C# 中创建 DataTable

以下代码创建一个包含两个列标题和多行的新数据表:

// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
// Create a new DataTable object
DataTable dt = new DataTable();
// Add column names to the DataTable
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
// Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars");
dt.Rows.Add("Dog", "Barks");
dt.Rows.Add("Cat", "Meows");
dt.Rows.Add("Goat", "Bleats");
dt.Rows.Add("Wolf", "Howls");
dt.Rows.Add("Cheetah", "Purrs");
' Create a new DataTable object
Dim dt As New DataTable()
' Add column names to the DataTable
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
' Add rows representing different animals and their sounds
dt.Rows.Add("Lion", "Roars")
dt.Rows.Add("Dog", "Barks")
dt.Rows.Add("Cat", "Meows")
dt.Rows.Add("Goat", "Bleats")
dt.Rows.Add("Wolf", "Howls")
dt.Rows.Add("Cheetah", "Purrs")
$vbLabelText   $csharpLabel

首先,我们创建一个名为"dt"的新数据表。 然后,使用Columns.Add ,我们可以按名称向数据表中添加指定数量的列; 在我们的示例中,我们有两列,分别名为"动物"和"声音"。 然后我们使用Rows.Add添加新行,并将每一行的内容放在括号内。 内容以逗号分隔,每列分隔一个字符串。

使用 IronXL 在 C# 中创建 Excel 文件

使用 IronXL 从头开始创建 Excel 文件类型时,这是一个两步过程,在 C# 中实现起来非常容易。 IronXL 首先创建一个 Excel 工作簿,然后帮助向其中添加工作表。 以下示例代码演示了如何创建包含工作表的工作簿:

// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
// Create a new workbook in XLSX format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
// Reference to the default worksheet in the workbook
WorkSheet ws = wb.DefaultWorkSheet;
' Create a new workbook in XLSX format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
' Reference to the default worksheet in the workbook
Dim ws As WorkSheet = wb.DefaultWorkSheet
$vbLabelText   $csharpLabel

使用 IronXL 将数据表数据导出到 Excel 工作表

使用 IronXL 向工作表中添加值可以简化整个过程,因为它只需编写最少的代码即可完成此任务。 在这里我们将学习如何将上一节中创建的数据表中的数据导出到新创建的 Excel 工作表中。 让我们一步一步地来看代码。

在 Excel 工作表中添加列标题

// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
// Assign DataTable column names to the first row of the Excel worksheet
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
// Start adding data from the second row
int rowCount = 2;
' Assign DataTable column names to the first row of the Excel worksheet
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
' Start adding data from the second row
Dim rowCount As Integer = 2
$vbLabelText   $csharpLabel

在上面的代码中,Excel 工作表的"A1"列被赋值为数据表第 1 列索引为 0 的值,Excel 工作表的下一个"B1"列被赋值为数据表第 2 列索引为 1 的值。 rowCount变量的值设置为 2,表示从 DataTable 的第二行开始读取行; 这样可以确保我们不将标题行计算在内。

向 Excel 工作表中添加行

以下代码将从数据表中读取每一行,并将其分配给 Excel 文件中的新行:

// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
// Iterate through each row in the DataTable and add to Excel worksheet
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
' Iterate through each row in the DataTable and add to Excel worksheet
For Each row As DataRow In dt.Rows
	ws("A" & (rowCount)).Value = row(0).ToString()
	ws("B" & (rowCount)).Value = row(1).ToString()
	rowCount += 1
Next row
$vbLabelText   $csharpLabel

上述代码中, rowCount变量每次都会递增,以便从DataTable 中读取新行到 Excel工作表单元格中。

保存 Excel 文件

最后,使用SaveAs()方法保存 Excel 文件。

// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
// Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
' Save the workbook to a file
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
$vbLabelText   $csharpLabel

文件还可以保存为其他格式,例如 CSV(逗号分隔值)、JSON、XML。

// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
// Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
' Save the workbook in different file formats
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
$vbLabelText   $csharpLabel

您还可以使用自定义分隔符保存。

输出

文件的最终输出结果如下所示:

将数据表输出到 Excel

摘要

在本文中,我们演示了如何在 C# 中创建具有列和行的 DataTable,然后使用 IronXL 生成带有默认工作表的 Excel 工作簿。 然后,我们成功地将数据表中的表格数据导出到 Excel 文件中,并将其保存为 .xlsx 格式。

IronXL是一个用户友好的 C# 库,即使没有安装 MS Excel,开发人员也可以无缝地处理 Excel 文件。 它支持从各种格式(例如 CSV 文件)导出数据,以便进行进一步的处理和计算。

要了解有关 IronXL 及其强大功能集的更多信息,请务必查看其详尽的文档。 想亲自体验一下吗? IronXL 还提供免费试用版,可完全访问所有功能,因此您可以立即开始探索这个强大的库如何改进您的电子表格项目!

常见问题解答

如何使用 C# 快速将 DataTable 导出到 Excel?

您可以使用 IronXL .NET Excel 库高效地将 DataTable 导出到 Excel。该库允许您创建和操作 Excel 文件,无需 Microsoft Office Interop。

将 DataTable 导出到 Excel 需要哪些工具?

要使用 IronXL 导出 DataTable 到 Excel,您需要安装 Visual Studio,并通过 NuGet 包管理器将 IronXL 库添加到您的项目中。

如何在 C# 应用程序中创建 DataTable?

在 C# 中,您可以通过实例化一个新的 DataTable 对象来创建 DataTable。然后可以使用 Columns.Add 添加列,并使用 Rows.Add 添加行。

将 DataTable 的数据导出到 Excel 文件的方法是什么?

要将数据从 DataTable 导出到 Excel 文件,需遍历每个 DataTable 行,并使用 IronXL 功能将值分配给相应的 Excel 单元格。

我可以使用 .NET 库以不同格式保存 Excel 文件吗?

可以,使用 IronXL,您可以将 Excel 文件保存为多种格式,包括 XLSX、CSV、JSON 和 XML,还可以指定自定义分隔符。

需要 Microsoft Office 来管理 C# 库的 Excel 文件吗?

不,您不需要安装 Microsoft Office。IronXL 允许您以编程方式管理 Excel 文件,而无需依赖 Microsoft Office Interop。

使用 .NET Excel 库有什么好处?

IronXL 提供许多优势,例如创建和编辑 Excel 文件、应用公式、样式化单元格以及以多种格式导出数据。它还支持密码保护等安全功能。

以编程方式保存 Excel 工作簿涉及哪些步骤?

要使用 IronXL 保存 Excel 工作簿,使用 SaveAs 方法,选择所需的文件格式,如 XLSX、CSV 或 JSON。

是否提供 .NET Excel 库的免费试用版本?

是的,IronXL 提供免费试用,您可以获得完整功能访问权限,允许开发者在承诺之前测试其功能。

在哪里可以找到 .NET Excel 库的详细文档?

IronXL 的完整文档,包括指南和示例,可在其官方网站找到。

Curtis Chau
技术作家

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

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