C# 将DataTable 中的数据导出为 .xlsx 文件,并返回给客户端下载。
时间: 2024-03-09 08:45:10 浏览: 19
当然,以下是另一种使用 EPPlus 库将 DataTable 中的数据导出为 .xlsx 文件并返回给客户端的方法:
```csharp
using System.Data;
using System.IO;
using OfficeOpenXml;
public void ExportToExcel(DataTable dataTable, string fileName)
{
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
worksheet.Cells["A1"].LoadFromDataTable(dataTable, true);
using (MemoryStream stream = new MemoryStream())
{
package.SaveAs(stream);
byte[] bytes = stream.ToArray();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".xlsx");
HttpContext.Current.Response.BinaryWrite(bytes);
HttpContext.Current.Response.End();
}
}
}
```
在这个代码中,我们首先使用 EPPlus 库创建一个新的 ExcelPackage 对象,并将 DataTable 添加到工作表中。然后,我们将 ExcelPackage 对象保存到一个内存流中,并将内存流中的字节转换为一个字节数组。接下来,我们将该字节数组返回给客户端,让客户端能够下载该文件。最后,我们使用 HttpContext.Current.Response.End() 方法终止响应,以确保不会有其他内容被发送到客户端。