Skriva till excelfil äter upp allt minne

Permalänk

Skriva till excelfil äter upp allt minne

Hej,

Mitt problem kommer när jag skapar en excelfil från ett datatable på över uppskattningsvis 500 rader.
Jag kommer att behöva kunna skapa över 2000rader!
Problemet: Skapandeprocessen äter upp allt minne(4GB)

Okej, här kommer koden som jag använder för att skapa excelfilen. Vad kan vara orsaken?

using DocumentFormat.OpenXml.Spreadsheet; using DocumentFormat.OpenXml.Packaging; public static void InsertDataToExcelFile(SpreadsheetDocument sheet, DataTable table) { sheet.AddWorkbookPart(); sheet.WorkbookPart.Workbook = new Workbook(); sheet.WorkbookPart.Workbook.AppendChild(new Sheets()); WorksheetPart newWorksheetPart = sheet.WorkbookPart.AddNewPart<WorksheetPart>(); newWorksheetPart.Worksheet = new Worksheet(); uint worksheetNumber = 1; SheetData sheetData = newWorksheetPart.Worksheet.AppendChild(new SheetData()); int numberOfColumns = table.Columns.Count; bool[] IsNumericColumn = new bool[numberOfColumns]; Row newRow = sheetData.AppendChild(new Row()); Cell newCell; foreach (DataRow dr in table.Rows) { newRow = sheetData.AppendChild(new Row()); for (int colInx = 0; colInx < numberOfColumns; colInx++) { string cellValue = dr.ItemArray[colInx].ToString(); if (IsNumericColumn[colInx] && !string.IsNullOrEmpty(cellValue)) { newCell = CreateNumericCell(cellValue); } else { newCell = CreateTextCell(cellValue); } newRow.AppendChild(newCell); } } newWorksheetPart.Worksheet.Save(); sheet.WorkbookPart.Workbook.GetFirstChild<Sheets>().AppendChild(new Sheet() { Id = sheet.WorkbookPart.GetIdOfPart(newWorksheetPart), SheetId = worksheetNumber++, Name = table.TableName }); sheet.WorkbookPart.Workbook.Save(); }

Permalänk
Hedersmedlem

Fungerar det om du begränsar urvalet en smula (inte alla i table.rows; inte hela 0 - numberOfColumns)?