在日常開發中,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 批量導入數據庫 等場景。
更多教程請參考:Spire.XLS for .NET 教程中心