跳至页脚内容
使用 IRONXL

如何在 ASP.NET Core 中将 DataTable 导出到 Excel

本文将探讨将 DataTable 导出为Excel文件的不同方法及其好处。

1. IronXL

IronXL 是一个强大的 .NET 库,提供开发人员使用 ASP.NET 读取、写入和操作 Excel 文件的能力。 它提供了一系列简化处理Excel文件过程的功能,例如数据提取、格式化和验证。

IronXL 可以处理 XLS 和 XLSX 文件格式,是一个用于处理 Excel 文件的多功能工具。 它还支持多种其他文件格式,如 CSV 和 TSV,允许用户处理不同的数据源。 本文将探讨 IronXL 的不同特性,以及它如何帮助开发人员简化Excel文件的处理过程。

2. 先决条件

使用 IronXL 库从 DataTable 导出数据到 Excel 的先决条件:

  • 要创建 ASP.NET 项目,需要在系统上安装 Visual Studio。 如果您尚未安装 Visual Studio,可以从微软网站下载。
  • 在创建 ASP.NET 项目之前,需确保系统上已安装 ASP.NET。 您可以通过进入控制面板并查看“打开或关闭 Windows 功能”选项来验证。 确保“ASP.NET”选项已启用。
  • 要能够使用 IronXL 库将 DataTable 数据导出到 Excel 文件,您必须安装它。 您可以通过在 Visual Studio 中从 NuGet 包管理器中下载 IronXL NuGet 包来进行安装。

3. 创建新的ASP.NET Core项目

要与 Excel 使用 IronXL 库,您需要在 Visual Studio 中创建一个 .NET 项目。 您可以使用任意版本的 Visual Studio,但建议使用最新版本。 根据您的需求,您可以选择不同的项目模板,例如 Windows Forms。 为了简化过程,本教程将使用控制台应用程序。

如何在 ASP.NET 中导出数据表到 Excel,图 1:在 Visual Studio 中创建新项目 在 Visual Studio 中创建新项目

选择项目类型后,为项目提供一个名称并指定其位置。 选择所需的框架,例如 .NET Core 6,作为项目的框架。

如何在 ASP.NET 中导出数据表到 Excel,图 2:配置新项目 配置新项目

解决方案创建后,将打开Program.cs文件,您可以在其中输入代码并构建/运行应用程序。

如何在 ASP.NET 中导出数据表到 Excel,图 3:.NET 框架选择 .NET 框架选择

最后,您可以整合该库以测试代码。

4. 安装IronXL

可以通过不同方式下载和安装 IronXL 库。

这些是:

  • 使用Visual Studio NuGet包
  • 使用Visual Studio命令行。

4.1 使用Visual Studio

要安装 IronXL 库,最简单的方法是使用 Visual Studio 中的 NuGet 包管理器。 只需打开 NuGet 包管理器并在浏览选项卡中搜索 IronXL。 找到 IronXL 后,选择它并继续安装。 安装完成后,您可以开始在项目中使用 IronXL 库。

下面的截图显示了如何在 Visual Studio 中打开 NuGet 包管理器。

如何在 ASP.NET 中导出数据表到 Excel,图 4:导航到 NuGet 包管理器 导航到 NuGet 包管理器

IronXL在搜索结果中:

如何在 ASP.NET 中导出数据表到 Excel,图 5:在 NuGet 包管理器 UI 中搜索并安装 IronXL 包 在 NuGet 包管理器 UI 中搜索并安装 IronXL 包

4.2 使用Visual Studio命令行

许多人更喜欢使用命令行界面安装包。 要使用命令行安装 IronXL,请按照以下步骤操作:

  • 在Visual Studio中,转到工具 > NuGet包管理器 > 包管理器控制台
  • 在包管理器控制台选项卡中输入以下行:
Install-Package IronXL.Excel

现在包将下载/安装到当前项目中并准备使用。

如何在 ASP.NET 中导出数据表到 Excel,图 6:包管理器控制台中的安装进度 包管理器控制台中的安装进度

5. 使用 IronXL 创建 Excel 文件使用 DataTable DT

从数据表导出数据到 Excel 文件格式非常流行。 使用 IronXL,您可以轻松将 DataTable 数据导出到 Excel 文档。 下面附带的示例代码将 DataTable 转换为保存为 XLSX 文件格式的 Excel 工作表。

5.1. DataTable 导入 Excel 文件

首先,您需要包括 IronXL 的命名空间和其他依赖项。 然后您可以开始编写如下所示的代码。

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as an XLSX file.
        wb.SaveAs("datatable.xlsx");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as an XLSX file.
		wb.SaveAs("datatable.xlsx")
	End Sub
End Class
$vbLabelText   $csharpLabel

输出

以下是上述源代码输出,显示数据在 Excel 文件中的样子。

如何在 ASP.NET 中导出数据表到 Excel,图 7:输出 Excel 文件 输出 Excel 文件

5.2. DataTable 到支持的 Excel 文件格式

使用 IronXL,您还可以将 DataTable 转换为不同的 Excel 支持文件格式,例如 CSV 文件。 我们将使用下面的示例,但这次将其保存为 CSV 文件。 这就是保存工作簿为不同文件格式所需做的全部工作。

using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main()
    {
        // Create a new DataTable.
        DataTable dt = new DataTable();
        dt.Columns.Add("DataSet", typeof(string)); // Add a column to the DataTable.

        // Add rows to the DataTable.
        dt.Rows.Add("Pen");
        dt.Rows.Add("Paper");
        dt.Rows.Add("Book");
        dt.Rows.Add("Cat");
        dt.Rows.Add("Panther");
        dt.Rows.Add("Cell");
        dt.Rows.Add("Bag");
        dt.Rows.Add("Bed");
        dt.Rows.Add("Fan");
        dt.Rows.Add("Smoke");

        // Create a new workbook.
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        // Get the default worksheet.
        WorkSheet ws = wb.DefaultWorkSheet;
        // Start adding data from row 1.
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable.
        foreach (DataRow row in dt.Rows)
        {
            ws["A" + (rowCount)].Value = row[0].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file.
        wb.SaveAsCsv("datatable.csv");
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main()
		' Create a new DataTable.
		Dim dt As New DataTable()
		dt.Columns.Add("DataSet", GetType(String)) ' Add a column to the DataTable.

		' Add rows to the DataTable.
		dt.Rows.Add("Pen")
		dt.Rows.Add("Paper")
		dt.Rows.Add("Book")
		dt.Rows.Add("Cat")
		dt.Rows.Add("Panther")
		dt.Rows.Add("Cell")
		dt.Rows.Add("Bag")
		dt.Rows.Add("Bed")
		dt.Rows.Add("Fan")
		dt.Rows.Add("Smoke")

		' Create a new workbook.
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		' Get the default worksheet.
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		' Start adding data from row 1.
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable.
		For Each row As DataRow In dt.Rows
			ws("A" & (rowCount)).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save the workbook as a CSV file.
		wb.SaveAsCsv("datatable.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

如何在 ASP.NET 中导出数据表到 Excel,图 8:输出 CSV 文件 输出 CSV 文件

6.结论

DataTable 导出到 Excel 是数据分析和管理中的重要步骤。 Excel 电子表格广泛用于数据可视化和演示,而 IronXL 库提供了一系列功能,简化了在 ASP.NET 中处理 Excel 文件的过程。 本文介绍了创建新 ASP.NET 项目、安装 IronXL 并使用它从 DataTable 导出数据到 Excel 文件的步骤。此外,还演示了如何将工作簿保存为不同的文件格式,例如 CSV。通过利用 IronXL,开发人员可以简化处理 Excel 文件的过程,并创建数据的视觉展示。

要了解有关 IronXL 和将 DataTable 导出到不同 Excel 格式的更多信息,请访问以下教程

IronXL 免费安装和使用于非商业开发目的。 提供免费试用版用于生产测试。 请查看定价计划了解更多关于价格和许可的信息。

Users can also benefit from the Iron Suite, a collection of five professional libraries including IronXL, IronPDF, and more.

常见问题解答

如何在 ASP.NET Core 中将 DataTable 导出到 Excel 文件?

要在 ASP.NET Core 中使用 IronXL 将 DataTable 导出到 Excel,您需要创建一个 DataTable 并用数据填充它,然后利用 IronXL 创建一个新工作簿。您可以使用 IronXL 的方法将工作簿保存为 XLSX 或 CSV 格式。

在 ASP.NET 项目中使用 IronXL 的先决条件是什么?

在 ASP.NET 项目中使用 IronXL 之前,确保您已安装 Visual Studio 以创建 ASP.NET 项目,并通过 NuGet 包管理器安装 IronXL 库。还需在您的开发环境中正确设置 ASP.NET。

如何使用 Visual Studio 在我的项目中安装 IronXL?

您可以使用 Visual Studio 中的 NuGet 包管理器搜索 IronXL 并单击'安装'将其安装到项目中。或者,使用命令:Install-Package IronXL.Excel 的包管理器控制台。

我可以使用 IronXL 将 DataTable 数据保存为不同的文件格式吗?

是的,IronXL 支持将 DataTable 数据保存为多种文件格式,包括 XLSX 和 CSV。使用像 SaveAs 或 SaveAsCsv 这样的方法来指定所需的文件格式。

IronXL 是否适合非商业开发?

IronXL 可免费安装和用于非商业开发。还有用于生产测试的免费试用版。有关商业用途的许可详情,请访问 Iron Software 网站。

使用 IronXL 将 DataTable 导出到 Excel 的好处是什么?

IronXL 通过提供易于使用的数据操作和导出方法来简化将 DataTable 导出到 Excel。它支持多种文件格式,有助于简化 Excel 中的数据可视化和呈现过程。

如何创建新的 ASP.NET Core 项目以将 DataTable 导出到 Excel?

要在 Visual Studio 中创建一个新的 ASP.NET Core 项目,选择项目类型,提供名称和位置,并选择适当的 .NET 框架版本。设置完成后,集成 IronXL 来管理 Excel 文件导出。

Curtis Chau
技术作家

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

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