// Ponieważ algorytm generuje listę rozkrojową osobno dla każdego profilu, // Elementy również są aktualizowane profilami. public static void writeProfileToStoreFile(string storeFile, List <StoredElement> store) { using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(storeFile, true)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; for (int i = 0; i != store.Count();) { int count = 0; int curr_len = store[i].GetLength(); StoredElement e = store[i]; while (i != store.Count() && store[i].GetLength() == curr_len) { ++i; ++count; } // jeśli zostaje mniej niż 700mm długości, to element nie wraca do magazynu, // tylko idzie na złom if (e.GetDelivery() != "" && e.GetLength() >= 700) { writeElementToStoreFile(workbookPart, e, count); } } } }
private static void writeElementToStoreFile(WorkbookPart workbook, StoredElement e, int count) { InsertCell(workbook, "A", rowNumber, e.GetProfile()); InsertCell(workbook, "B", rowNumber, e.GetElementType()); InsertCell(workbook, "C", rowNumber, e.GetLength().ToString()); InsertCell(workbook, "D", rowNumber, count.ToString()); InsertCell(workbook, "E", rowNumber, e.GetDelivery()); ++rowNumber; }