MS Excel 电子表格广泛用于保存小型、中型或大型数据。在各种情况下,电子表格充当数据库来存储应用程序数据。在这种情况下,您可能需要从 Web 或桌面应用程序中读取存储在 Excel 文件中的数据。对于这种情况,本文介绍了如何在 C# 中将 Excel 数据转换为 DataTables。
- C# API 将 Excel 数据导出到 DataTable
- Excel 到 C# 中的数据表
- 将强类型 Excel 数据转换为 DataTable
- 将非强类型 Excel 数据转换为 DataTable
- 获得免费许可证
C# Excel 到 DataTable 转换 API
Aspose.Cells for .NET 是一个类库,可让您在 .NET 应用程序中实现 Excel 自动化功能。此外,API 允许您通过几个步骤将数据从 Excel 工作表导出到 ADO.NET DataTable。您可以 下载 API 或通过 NuGet 安装它。
PM> Install-Package Aspose.Cells
在 C# 中将 Excel 转换为数据表
将数据从 Excel 工作表导出到 DataTables 时可能有两种情况:数据可能是强类型或非强类型。在这两种情况下,您都可以相应地执行 Excel 到 DataTable 的转换。让我们看看如何处理上述两种情况。
在 C# 中将强类型 Excel 数据转换为 DataTable
强类型数据意味着单个列中的值属于特定数据类型。对于这种情况,您可以使用以下步骤将 Excel 数据导出到 C# 中的 DataTable。
- 使用 Workbook 类加载 Excel 文件。
- 在 Worksheet 对象中获取要导出的工作表。
- 使用 Worksheet.Cells.ExportDataTable(int, int, int, int, bool) 方法将数据导出到 DataTable 对象。
- 使用 DataTable 作为数据源。
以下代码示例演示如何将 Excel 导出到 DataTable。
// 创建一个包含要打开的 Excel 文件的文件流
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// 实例化工作簿对象
//通过文件流打开Excel文件
Workbook workbook = new Workbook(fstream);
// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 将从第一个单元格开始的 2 行 2 列的内容导出到 DataTable
DataTable dataTable = worksheet.Cells.ExportDataTable(0, 0,2, 2, true);
// 将 DataTable 与 DataGrid 绑定
dataGridView1.DataSource = dataTable;
// 关闭文件流以释放所有资源
fstream.Close();
在 C# 中将非强类型 Excel 数据转换为 DataTable
现在,让我们看看工作表中的值不是强类型的另一种情况。这意味着它们不属于特定的数据类型。以下是本案例中将 Excel 数据导出到 DataTable 的步骤。
- 使用 Workbook 类加载 Excel 文件。
- 在 Worksheet 对象中选择要导出的工作表。
- 使用 Worksheet.Cells.ExportDataTableAsString(int, int, int, int, bool) 方法将数据导出到 DataTable 对象。
- 使用 DataTable 作为数据源。
以下代码示例展示了如何将非强类型数据从 Excel 导出到 C# 中的 DataTable。
// 创建一个包含要打开的 Excel 文件的文件流
FileStream fstream = new FileStream("Excel.xlsx", FileMode.Open);
// 实例化工作簿对象
//通过文件流打开Excel文件
Workbook workbook = new Workbook(fstream);
// 访问 Excel 文件中的第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 将从第一个单元格开始的 2 行 2 列的内容导出到 DataTable
DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, 2, 2, true);
// 将 DataTable 与 DataGrid 绑定
dataGridView1.DataSource = dataTable;
// 关闭文件流以释放所有资源
fstream.Close();
获得免费许可证
您可以 获得免费的临时许可证 以便在没有评估限制的情况下试用 API。
结论
在本文中,您学习了如何使用 C# 将 Excel 数据导出或转换为 ADO.NET DataTables。分步教程和代码示例展示了如何处理工作表中的强类型和非强类型数据。您可以使用 文档 探索有关 C# Excel API 的更多信息。