使用IRONXL

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

更新 2024年九月26日
分享:

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

在C#中,ADO.NET库中的DataTable对象表示程序中的表格数据,就像Excel工作表一样。 它将数据组织成行和列,方便操作和导出。 就像 Excel 一样,DataTable 支持过滤、排序和格式选项,使其成为在 C# 中管理数据范围的首选工具。 然而,DataTable 在运行时创建,并且在应用程序关闭时其数据会丢失,除非将其导出为更永久的格式,例如 Excel 文件或 CSV 文件。

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

IronXL:一个 .NET Excel 库

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

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

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

先决条件

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

  1. Visual Studio - Visual Studio 是用于 C# 编程的集成开发环境 (IDE),必须安装。 您可以从以下地址下载并安装最新版本 Visual Studio 网站.

    • 一旦设置好IDE,需要创建一个控制台应用程序/Windows表单,这将有助于将数据表导出到Excel。 以下截图显示了如何创建项目。

      创建项目

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

      控制台应用程序

      为您的项目命名并选择保存位置。

      命名项目

      最后,选择您的.NET Framework,然后点击“创建”。

      .NET Framework

      在最后一个截图中点击创建后,名为“DemoApp”的项目被创建。

  2. IronXL 库 - 必须在 Visual Studio 项目中下载并安装 IronXL 库。 有多种方法可以做到这一点。

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

      解决方案资源管理器

      工具 - NuGet 包管理器

      进入“管理解决方案的NuGet包”,然后搜索IronXL。 然后,您只需点击“安装”,IronXL库就会被添加到您的项目中。

      浏览 IronXL

    • 开发人员命令提示符 - 可以通过Visual Studio工具菜单或从Visual Studio文件夹中打开开发人员命令提示符。 键入以下命令以下载并安装IronXL到您的项目中:
PM > Install-Package IronXL.Excel
PM > Install-Package IronXL.Excel
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'PM > Install-Package IronXL.Excel
VB   C#
  1. 添加必要的命名空间 - 要创建数据表并使用IronXL,必须在Program.cs文件的顶部引用这两者。
using IronXL; //add reference...
   using System.Data;
using IronXL; //add reference...
   using System.Data;
Imports IronXL 'add reference...
   Imports System.Data
VB   C#

一旦所有先决条件都满足,就可以开始将数据从数据表导出到Excel工作表。

在C#中创建一个DataTable

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

//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
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");
//new datatable dt...
DataTable dt = new DataTable();
//add column names...
dt.Columns.Add("Animal");
dt.Columns.Add("Sound");
dt.Rows.Add("Lion", "Roars"); // first row...
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");
'new datatable dt...
Dim dt As New DataTable()
'add column names...
dt.Columns.Add("Animal")
dt.Columns.Add("Sound")
dt.Rows.Add("Lion", "Roars") ' first row...
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")
VB   C#

首先,我们创建一个名为“dt”的新DataTable。 然后,使用 Columns.Add 我们可以通过名称向数据表添加指定数量的列,在我们的示例中,我们有两列,分别称为“Animal”和“Sound”。 然后我们使用 Rows.Add 添加新行,将每行的内容放在括号内。 内容被逗号分隔,每个字符串由列分隔。

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

使用IronXL从头创建Excel文件类型是一个两步过程,在C#中实现非常简单。 IronXL首先创建一个Excel工作簿,然后帮助向其添加工作表。 以下示例代码演示了如何创建一个工作簿以及工作表:

//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
//create new workbook...
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet ws = wb.DefaultWorkSheet;
'create new workbook...
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = wb.DefaultWorkSheet
VB   C#

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

利用IronXL将数值添加到工作表能够简化整个过程,这可以通过极少的代码来完成。 在这里我们将学习如何 从数据表导出数据 在前一部分创建的内容导入到新创建的Excel工作表中。 让我们一步一步地查看代码。

向 Excel 工作表添加列标题

ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws["A1"].Value = dt.Columns[0].ToString();
ws["B1"].Value = dt.Columns[1].ToString();
int rowCount = 2;
ws("A1").Value = dt.Columns(0).ToString()
ws("B1").Value = dt.Columns(1).ToString()
Dim rowCount As Integer = 2
VB   C#

在上述代码中,Excel表格的"A1"列被赋予数据表中索引0的第一列的值,而下一个Excel列"B1"的值则被赋予数据表中索引1的第二列的值。 rowCount 变量被设置为值 2,以从第二行开始读取数据表中的行,这确保我们不计入标题行。

向 Excel 工作表添加行

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

foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
foreach (DataRow row in dt.Rows)
{
    ws["A" + (rowCount)].Value = row[0].ToString();
    ws["B" + (rowCount)].Value = row[1].ToString();
    rowCount++;
}
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
VB   C#

rowCount 变量每次递增,以便从中读取新行。 数据表到 Excel 工作表单元格。

保存 Excel 文件

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

wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx");
wb.SaveAs("DataTable_to_Excel_IronXL.xlsx")
VB   C#

该文件也可以另存为其他格式,例如CSV。 (逗号分隔值)JSON 和 XML。

wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv");
wb.SaveAsJson("DataTable_to_Excel_IronXL.json");
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml");
wb.SaveAsCsv("DataTable_to_Excel_IronXL.csv")
wb.SaveAsJson("DataTable_to_Excel_IronXL.json")
wb.SaveAsXml("DataTable_to_Excel_IronXL.xml")
VB   C#

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

输出

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

数据表到Excel输出

摘要

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

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

要了解有关IronXL及其强大功能集的更多信息,请务必查看其广泛的 文献资料. 想自己试试吗? IronXL还提供一个 免费试用 可以完全访问所有功能,因此您可以立即开始探索这个强大的库如何改善您的电子表格项目。!

< 前一页
如何在VB.NET中将数据表导出到Excel
下一步 >
如何在C#中读取Excel文件

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 1,039,965 查看许可证 >