Search code examples
c#asp.netexport-to-excelepplus

Large Dataset Download to excel


I am using EPPlus to download large excel file. when I see the file it writes the data into it but while downloading it says timeout expired error! I do have the following piece of code.

     dtExport.Rows.Add(drFooter);
     DataSet ds = new DataSet();
     ds.Tables.Add(dtExport);
        try
        {
            FileInfo template = new FileInfo(HttpContext.Current.Server.MapPath(@"\ExcelPackageTemplate.xlsx"));
            FileInfo newfile = new FileInfo((filePath + filename));

            var rowCount = dtExport.Rows.Count;
            using (ExcelPackage pck = new ExcelPackage(newfile, template))
            {
                /**************Create Worksheet with datatable-- No Formatting************/
                ExcelWorkbook wb = pck.Workbook;
                ExcelWorksheet sheet = wb.Worksheets["Sheet1"];
                sheet.Cells["A1"].LoadFromDataTable(dtExport, true);

                string[] columnTypes = new string[dtExport.Columns.Count];

                for (int i = 0, j = 1; i <= dtExport.Columns.Count - 1; i++, j++)
                {
                    if (dtExport.Columns[i].ColumnName == "Date")
                    {
                        sheet.Column(j).Width = 12;
                    }
                    else
                    {
                        sheet.Column(j).AutoFit();
                    }
                }

                pck.Save();

                pck.Dispose();
              }
            }
          Response.TransmitFile((Server.MapPath("Excel/Rpt" + fileName)));

        }
        catch (Exception ex)
        {
            throw ex;
        }

How can I achieve this?


Solution

  • I updated the AsyncPostBackTimeout="600" in updatepanel and it worked!