
C# 中 DataTable 到 Excel(代码示例教程)
以编程方式更改Excel电子表格可能会遇到两个主要问题。 首先,在处理电子表格时,用户必须保持界面和文档结构的一致性,这并不总是简单的。 其次,在特定情况下(尤其是涉及复杂计算时)并不总是清楚哪些代码可以工作。 以编程方式创建Excel文件存在众多困难。 程序员必须首先将Excel文档中的数据转换为可读格式,然后解析数据并解析回去,这更加困难。 我已找到解决这个问题的方法。 我会教你如何使用IronXL .NET Excel库创建Excel文件并将DataTable以编程方式导出到Excel工作表中。 让我们开始吧:
如何在 C# 中将数据表导出到 Excel
- 安装 C# 库以将 DataTable 导出到 Excel
- 创建新的 Excel 工作簿并访问工作表
- 在 C# 中遍历
DataTable的DataRow - 访问
Cell中的Value属性,并将DataRow中的数据填充到工作表中 - 将 Excel 电子表格导出到所需位置
IronXL功能
- IronXL可在各种操作系统上运行,包括Windows、Linux和macOS。
- 几乎所有的.NET框架都得到IronXL的支持,包括控制台、Windows窗体应用程序和Web应用程序。
- IronXL使阅读Excel文件变得简单易行。
- 我们可以使用IronXL加载、编辑、导出数据表、导出数据集,并读取Excel文件格式,如XLSX文件、XLS、CSV、TSV、XLST、XLSM文件等。
- IronXL允许我们以多种扩展名保存和导出文件,包括XLS、CSV、TSV、JSON、XLSX等。
- Excel公式可以由IronXL创建。
- IronXL支持文本、数字、公式、日期、货币、百分比以及其他Excel单元格数据格式。
- 它还提供多种排序选项,如范围、列和行等。
- IronXL中的单元格样式包括字体、大小、背景模式、边框和对齐方式等。
- 我们可以使用IronXL读取和导出Excel文件中的数据。
- IronXL不需要在服务器中安装Excel或Interop。 IronXL的API比Microsoft Office、Interop和Excel更快、更易于使用。
1 在Visual Studio中创建新项目
要使用IronXL库,我们必须在Visual Studio中创建一个.NET项目。 您可以使用任何版本的Visual Studio,但建议使用最新版本。 您可以根据需要创建类似Windows窗体或不同项目模板的应用程序。 为了简单起见,我将使用控制台应用程序作为本教程。
在Visual Studio中创建新项目UI
接下来,输入项目名称和项目位置。
创建新项目的配置步骤
接下来,选择下面的框架。 在这个项目中,我们将使用.NET Core 6。
.NET Framework选择 UI
应用程序创建解决方案后,它将打开program.cs文件,您可以在其中输入代码并构建/运行应用程序。
新项目中的空program.cs文件
接下来,我们可以添加库来测试代码。
2 安装IronXL库
IronXL库可通过四种方式下载和安装。
这些是:
- 使用Visual Studio
- 使用Visual Studio命令行。
- 从NuGet网站直接下载。
- 直接从IronXL网站下载。
2.1 使用Visual Studio
我们可以使用NuGet包管理器安装IronXL库。 您必须首先打开NuGet包管理器,然后在浏览选项卡中搜索IronXL。 从搜索结果中选择IronXL并安装。 此后,我们的项目将准备好使用IronXL库。
下面的截图展示了我们如何在Visual Studio中打开NuGet包管理器。
在 Visual Studio 中导航到 NuGet 包管理器
IronXL在搜索结果中:
搜索IronXL库
2.2 使用Visual Studio命令行
许多人喜欢使用控制台来执行操作。 因此,我们也可以通过控制台来安装它。 按照以下步骤通过命令行安装IronXL。
- 在Visual Studio中,转到工具-> NuGet包管理器 -> 包管理器控制台。
- 在包管理器控制台选项卡中输入以下行:
现在包将下载/安装到当前项目,并可以使用了。
通过控制台安装IronXL包
2.3 直接从NuGet网站下载
第三种方法是直接从网站下载NuGet包。
- 导航到NuGet官方网站的IronXL包页面。
- 从右手边菜单中选择下载包选项。
- 双击下载后的包。 它将自动安装。
- 接下来,重新加载解决方案并开始在项目中使用它。
2.4 直接从IronXL网站下载
点击链接从网站上直接下载最新包。下载完成后,按照以下步骤将包添加到项目中。
- 从解决方案窗口中右键点击项目。
- 然后,选择参考选项并浏览到下载参考的位置。
- 接下来,点击确定以添加参考。
3 使用IronXL将DataTable导出为Excel文件
IronXL允许我们简单地分步骤将DataTable导出为Excel文件。
首先,我们需要如下面的代码截图中那样包含IronXL的命名空间。 一旦添加完毕,我们就可以在代码中使用IronXL的类和方法。
在使用该库之前包含IronXL的namespace
IronXL允许我们创建Excel文件并将其转换为工作簿对象。 在将它们转换为对象后,我们可以执行各种操作。 在下面的示例代码中,我们将一个DataTable转换为Excel工作表,然后我们可以创建Excel文件。
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}Imports System
Imports System.Data
Imports IronXL
Public Class ExcelExporter
''' <summary>
''' Exports a DataTable to an Excel file using IronXL.
''' </summary>
''' <param name="filePath">The file path where the Excel file will be saved.</param>
Public Shared Sub ExportToExcel(ByVal filePath As String)
' Creating a DataTable with a single column
Dim table As New DataTable()
table.Columns.Add("DataSet_Animal", GetType(String))
' Adding some rows to the DataTable
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Cat")
table.Rows.Add("Goat")
table.Rows.Add("Panther")
table.Rows.Add("Fox")
table.Rows.Add("Cheetah")
' Creating a new Excel Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
' Accessing the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Iterating through the DataTable rows
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Adding each DataRow's first column value to the corresponding cell in the worksheet
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";")
End Sub
End Class在上述代码中,我们正在将DataTable导出到Excel文件中。首先,我们创建一个DataTable,然后我们创建列标题。 创建好列后,我们一个接一个地添加行。 一旦行添加完毕,我们创建WorkBook对象。 通过使用该对象,我们可以将数据添加到Excel工作表中,然后将数据保存到指定位置。 我们正在创建一个WorkBook对象中。
我们使用一个foreach循环逐个读取DataTable的值,然后将值添加到工作表中。 一旦所有值都添加到工作表中,我们然后使用名为SaveAsCsv的方法将它们保存到一个CSV文件中——我们需要传递分隔符和文件名及位置作为参数。 分隔符是可选参数,如果不需要可以忽略它。
在Visual Studio中完成的代码
以上是我们在.NET Core 6中使用的完整代码截图。
结果:
在Microsoft Excel中打开文件时的结果
以上是执行代码示例的结果。 在截图中,DataTable中可用的所有数据已经一个接一个地添加到新创建的Excel表中。
4 结论
IronXL是最常用的Excel库之一。 它不依赖于任何其他第三方库。 它是独立的,不需要安装MS Excel。 它可在多个平台上运行。 IronXL的入门价格为$999。 此外,它提供一年的产品支持和更新选项。 IronXL提供免费的版税覆盖,可额外费用。有关价格详情,请访问我们的许可页面。

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



