C# winform 实现代码 DataSet 导出 Excel 多个Sheet 薄
时间: 2024-09-23 19:07:31 浏览: 123
在C# WinForm中,可以使用`Microsoft.Office.Interop.Excel`命名空间来操作Excel并导出DataSet到多个工作表(Sheet)。以下是一个简单的示例代码,它将DataSet的数据分发到多个Excel文件中,每个表对应一个工作表:
```csharp
using System.Data;
using Microsoft.Office.Interop.Excel;
// 假设你已经有了一个DataSet named dataSet 和需要导出的工作表集合
private void ExportToMultipleSheets(DataSet dataSet)
{
if (dataSet.Tables.Count > 0)
{
// 创建Excel应用实例
Application excelApp = new Application();
try
{
// 遍历DataSet的每张表
foreach (DataTable table in dataSet.Tables)
{
// 新建Excel工作簿
Workbook workbook = excelApp.Workbooks.Add();
Worksheet worksheet = workbook.ActiveSheet;
// 设置工作表标题
worksheet.Name = table.TableName;
// 写入数据
int startRow = 1;
for (int i = 0; i < table.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = table.Columns[i].ColumnName;
}
for (int i = 0; i < table.Rows.Count; i++)
{
for (int j = 0; j < table.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1] = table.Rows[i][j];
}
}
// 保存工作簿到特定路径
string filePath = "Export_" + table.TableName + ".xls";
workbook.SaveAs(filePath);
}
}
finally
{
// 关闭所有工作簿和释放资源
foreach (var workbook in excelApp.Workbooks)
{
workbook.Close();
}
excelApp.Quit();
excelApp.Dispose();
}
}
}
// 使用时调用该方法
ExportToMultipleSheets(dataSet);
```
阅读全文