I am trying to export an Excel file with 1,800,000+ rows of data with 9 columns using EPPlus. I used a DataSet and separate it into batch (100,000 each DataTable). Currently, it can export at max of 1,000,000 rows.
Here's my code for export below:
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;
}