使用C#导出到具有大内存流的excel [英] Export to excel with large memory stream using c#
本文介绍了使用C#导出到具有大内存流的excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用此代码
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(ds);
wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
wb.Style.Font.Bold = true;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.Charset = "";
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename= EmployeeAndOrderReport.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(HttpContext.Current.Response.OutputStream);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
它工作正常,但是当我导出大记录时,它的显示超出内存异常..为什么这样的显示呢?
Its working fine But when i am exporting large record set its showing out of memory exception..why its showing like this??
推荐答案
我正在发布解决方案..最好是我认为最好导出大型文件.只需安装EPPLUS nuget软件包.
I am posting my solutions..which is best i think to export large files as excels..Just install EPPLUS nuget package.
`ExcelPackage excel = new ExcelPackage();
var userSheet = excel.Workbook.Worksheets.Add("DB_USER");
userSheet.Cells["A1"].LoadFromCollection(salaryReportlistObj, true);
using (var memoryStream = new MemoryStream())
{
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=Dane.xlsx");
excel.SaveAs(memoryStream);
memoryStream.WriteTo(HttpContext.Current.Response.OutputStream);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
`
这篇关于使用C#导出到具有大内存流的excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文