首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出大型Excel文件时,mscorlib.dll中出现了“mscorlib.dll”

导出大型Excel文件时,mscorlib.dll中出现了“mscorlib.dll”
EN

Stack Overflow用户
提问于 2017-07-11 10:27:25
回答 2查看 1.5K关注 0票数 1

我试图使用1,800,000+导出一个包含9列的EPPlus数据行的Excel文件。我使用了一个DataSet,并将它分成几个批次(每个DataTable 100,000)。目前,它最多可以导出1,000,000行。

下面是我的出口代码:

代码语言:javascript
复制
    public FileContentResult ExportInventory()
    {
         DataSet dsInventory = Session["Live_Inventory"] as DataSet;

         var filename = "Excel Inventory.xlsx";
         var excelContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
         byte[] excelContent = ExportExcel(dsInventory);

         return File(excelContent, excelContentType, filename);
    }

    public byte[] ExportExcel(DataSet dsInventory)
    {
         byte[] result = null;
         ExcelWorksheet workSheet = null;

         var package = new ExcelPackage();
         for (int tbl = 1; tbl <= dsInventory.Table.Count; tbl++)
         {
              workSheet = package.Workbook.Worksheets.Add(String.Format("Sheet " + tbl));
              workSheet.Cells["A1"].LoadFromDataTable(dsInventory.Tables[tbl], true);                  
         }

         result = package.GetAsByteArray();//Exception occurs here when table count > 10 
         return result;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-11 12:19:36

代码语言:javascript
复制
public void DataToExcel(DataTable dataToConvert, HttpResponse response)
{
    FileInfo myFile = new FileInfo("~/MyProject/Inventory.xlsx");
    using (ExcelPackage package = new ExcelPackage(myFile))
    {
        ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");

        worksheet.Cells["A1"].LoadFromDataTable(dataToConvert, true, OfficeOpenXml.Table.TableStyles.Light1);

        package.Save();


        response.Clear();
        response.ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
        response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", "Inventory.xlsx"));
        response.WriteFile("~/MyProject/Inventory.xlsx");
        response.Flush();
        response.End();

    }

}
票数 0
EN

Stack Overflow用户

发布于 2017-07-11 10:33:48

最新答案:

你应该看看这个:将大型数据导出到exel文件

这肯定能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45031921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档