public int UploadRelationship(string fileName, bool isInitial = false) { ExcelPackage package; IList <Item> listOfItems = _itemRepository.GetAll().ToList(); IList <Position> existingOfPoistion = _positionRepository.GetAll().ToList(); IList <Position> listOfPositions = new List <Position>(); if (isInitial) { var excelFile = Resource.库位; var templateStream = new MemoryStream(excelFile); package = new ExcelPackage(templateStream); listOfPositions = listOfItems.Select(item => new Position() { ItemId = item.ItemId, Code = item.Code, PositionName = "Stage" }).ToList(); } else { if (string.IsNullOrEmpty(fileName)) { return(-2); } var fi = new FileInfo(fileName); package = new ExcelPackage(fi); } var workbook = package.Workbook; ExcelWorksheet worksheet = workbook.Worksheets["库位关系"]; if (worksheet == null) { return(0); } var end = worksheet.Dimension.End; for (var row = 3; row <= end.Row; row++) //for (var row = 3; row <= 40; row++) { var positionObject = new Position { Id = Guid.NewGuid() }; for (var col = 1; col <= worksheet.Dimension.End.Column; col++) { var readValue = worksheet.Cells[row, col].Value == null ? "" : worksheet.Cells[row, col].Value.ToString(); switch (col) { case 2: positionObject.Code = readValue; var item = listOfItems.FirstOrDefault(x => x.Code == readValue); if (item != null) { positionObject.ItemId = item.ItemId; positionObject.Total = 0; } break; case 5: positionObject.PositionName = readValue; break; case 6: positionObject.Area = readValue; break; case 7: positionObject.Location = readValue; break; } } var isExisting = existingOfPoistion.FirstOrDefault(x => x.Code == positionObject.Code && x.PositionName == positionObject.PositionName); if (isExisting == null && positionObject.ItemId != Guid.Empty) { listOfPositions.Add(positionObject); } } try { _positionRepository.AddRange(listOfPositions); _positionRepository.Save(); return(1); } catch (DbUpdateException e) { var msg = e.Message; return(0); } }