I want to fill an Excel file to one million records but I get an outofmemory exception error.
This is my code
private void FillingExcellSheet(IEnumerable<object> sooratHesabList, string path, int i, int excelFilePartsNumber, string source,
            ExcelData item, int itemsCount, string itemId)
{
    int Max_Num_SEFAOT = CalculateMaximum_Numbers_SaveExcel_File_AOTime(sooratHesabList.Count());
    var dest = SetExcelFilePath(i, excelFilePartsNumber, path, item);
    CopyExcellFileFromSourceToDestination(source, dest);
    IWorkbook workbook = null;
    IWorksheet worksheet = null;
    IRange cells = null;
    SaveLogQueryResultCount(item, itemsCount, i);
    SaveLogTemplateFilePartCopiedInsertingRows(excelFilePartsNumber, i, item);
    for (int j = 0; j < Max_Num_SEFAOT; j++)
    {
        workbook = Factory.GetWorkbook(dest, System.Globalization.CultureInfo.CurrentCulture);
        worksheet = workbook.Worksheets[SooratHesabName];
        cells = worksheet.Cells;
   
        FillingExcellSheet(cells, sooratHesabList.Skip(Maximum_Numbers_SaveExcel_File_AOTime * j).Take(Maximum_Numbers_SaveExcel_File_AOTime), item,j,excelFilePartsNumber);
        workbook.Save();
        GC.Collect();
        GC.WaitForPendingFinalizers();
        workbook.Close(); 
    }
    SaveLogTemplateFilePartSaved(excelFilePartsNumber, i, item);
}
private void FillingExcellSheet(IRange cells, IEnumerable<object> sooratHesabList, ExcelData item, int j, int excelFilePartsNumber)
{
    if (excelFilePartsNumber > 1 && j == 0)
        item.RowNumber = 2;
    foreach (IEnumerable<object> row in sooratHesabList)
    {
        var colNumber = 0;
        cells[item.RowNumber, colNumber, item.RowNumber, 48].Copy(cells[(item.RowNumber) + 1, colNumber, (item.RowNumber) + 1, 48]);//ToDo: check style of template file
        foreach (var columnValue in row)
        {
            cells[item.RowNumber, colNumber].Value = columnValue?.ToString();
            colNumber++;
        }
        item.RowNumber++;
    }
}
 
    