在日常开发中,dataset 是 .net 程序中常用的数据容器,而 excel 文件 则是数据交换和报表的常见格式。
在实际业务中,经常需要将数据库查询结果保存到 excel 文件,或者将 excel 文件中的数据导入到 dataset 以便进一步处理。
本文将介绍如何使用 c# 和 free spire.xls for .net 来完成以下任务:
- 将 dataset 导出为 excel 文件;
- 从 excel 文件导入数据到 dataset。
准备工作
在项目中引入 excel 操作库,可以下载 free spire.xls for .net,或通过 nuget 安装:
install-package freespire.xls
step 1: dataset 导出到 excel
假设我们有一个 dataset,其中包含员工信息数据表。
下面的代码演示了如何将 dataset 保存为 excel 文件。
操作说明:
- 创建一个 dataset 并添加 datatable;
- 使用
workbook和worksheet创建 excel; - 调用
insertdatatable()方法将 datatable 写入工作表; - 保存 excel 文件。
代码示例:
using system;
using system.data;
using spire.xls;
class program
{
static void main()
{
// step 1: 创建dataset和datatable
dataset ds = new dataset();
datatable dt = new datatable("employees");
dt.columns.add("id", typeof(int));
dt.columns.add("name", typeof(string));
dt.columns.add("department", typeof(string));
dt.rows.add(1, "tom", "hr");
dt.rows.add(2, "lucy", "it");
dt.rows.add(3, "david", "finance");
ds.tables.add(dt);
// step 2: 创建workbook
workbook workbook = new workbook();
worksheet sheet = workbook.worksheets[0];
// step 3: 导出datatable到excel
sheet.insertdatatable(dt, true, 1, 1);
// step 4: 保存excel
workbook.savetofile("export.xlsx", excelversion.version2016);
}
}执行后,将得到一个包含员工信息的 excel 文件。

step 2: 从 excel 导入到 dataset
除了导出,我们也可以将 excel 中的数据读取到 dataset 中。
操作说明:
- 加载 excel 文件;
- 通过
exportdatatable()方法将工作表内容导入为 datatable; - 将 datatable 添加到 dataset。
代码示例:
using system;
using system.data;
using spire.xls;
class program
{
static void main()
{
// step 1: 加载excel文件
workbook workbook = new workbook();
workbook.loadfromfile("export.xlsx");
worksheet sheet = workbook.worksheets[0];
// step 2: 导入excel为datatable
datatable dt = sheet.exportdatatable(sheet.allocatedrange, true);
// step 3: 添加到dataset
dataset ds = new dataset();
ds.tables.add(dt);
// 验证输出
foreach (datarow row in dt.rows)
{
console.writeline($"{row["id"]}, {row["name"]}, {row["department"]}");
}
}
}运行结果将打印出 excel 中的员工信息。

总结
通过本文的示例,我们学习了如何在 c# 中实现 dataset 与 excel 的双向转换,包括:
- 导出 dataset 到 excel:用于报表生成或数据共享;
- 从 excel 导入到 dataset:便于数据分析和后续处理。
这种方式非常适合 数据交换、报表导出、excel 批量导入数据库 等场景。
到此这篇关于使用c#实现dataset与excel的互相转换的文章就介绍到这了,更多相关c# dataset与excel互转内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论