使用EPPlus,不需要创建文件,您可以使用流来完成所有操作,这是一个ASP.NET
ashx处理程序的示例,该处理程序会将数据表导出到excel文件中并将其提供给客户端:
public class GetExcel : IHttpHandler { public void ProcessRequest(HttpContext context) { var dt = DBServer.GetDataTable("select * from table"); var ms = GetExcel.DataTableToExcelXlsx(dt, "Sheet1"); ms.WriteTo(context.Response.OutputStream); context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; context.Response.AddHeader("Content-Disposition", "attachment;filename=EasyEditCmsGridData.xlsx"); context.Response.StatusCode = 200; context.Response.End(); } public bool IsReusable { get { return false; } } public static MemoryStream DataTableToExcelXlsx(DataTable table, string sheetName) { var result = new MemoryStream(); var pack = new ExcelPackage(); var ws = pack.Workbook.Worksheets.Add(sheetName); int col = 1; int row = 1; foreach (DataRow rw in table.Rows) { foreach (DataColumn cl in table.Columns) { if (rw[cl.ColumnName] != DBNull.Value) ws.Cells[row, col].Value = rw[cl.ColumnName].ToString(); col++; } row++; col = 1; } pack.SaveAs(result); return result; } }


