asp.net c# 网页 导出excel 多表格 多个sheet
时间: 2024-01-23 21:03:20 浏览: 163
asp.net实现数据导入导出Excel 多Sheet表
你可以使用以下代码将多个 DataTable 导出到一个 Excel 文件的多个 sheet 中:
```csharp
protected void ExportToExcel(List<DataTable> tables, string fileName)
{
// 创建 Excel 应用程序对象
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = false;
// 创建一个新的工作簿
Microsoft.Office.Interop.Excel.Workbook workbook = excelApp.Workbooks.Add();
// 循环创建每个表格的 sheet
for (int i = 0; i < tables.Count; i++)
{
// 创建一个新的 sheet
Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Sheets.Add();
worksheet.Name = "Sheet" + (i + 1);
// 填充数据到 sheet 中
int rowCount = tables[i].Rows.Count;
int colCount = tables[i].Columns.Count;
for (int row = 0; row < rowCount; row++)
{
for (int col = 0; col < colCount; col++)
{
worksheet.Cells[row + 1, col + 1] = tables[i].Rows[row][col].ToString();
}
}
}
// 保存 Excel 文件
workbook.SaveAs(fileName);
// 关闭 Excel 应用程序
excelApp.Quit();
}
```
使用方法示例:
```csharp
List<DataTable> tables = new List<DataTable>();
tables.Add(GetDataTable1());
tables.Add(GetDataTable2());
ExportToExcel(tables, "D:\\test.xlsx");
```
其中,`GetDataTable1()` 和 `GetDataTable2()` 分别是获取需要导出的两个 DataTable 的方法,`"D:\\test.xlsx"` 是导出的 Excel 文件的路径和文件名。
阅读全文