protected async Task <BaseResponse <List <DynamicParameters> > > ReadXlsxFile(MemoryStream stream) { var importExelFrameWork = await _rpTailieu.GetImportTypes((int)HosoType.RevokeDebt); if (importExelFrameWork == null) { return(new BaseResponse <List <DynamicParameters> >("Không tìm thấy importExelFrameWork", null, false)); } var config = await _rpConfig.GetByCode(Constanst.revoke_debt_max_row_import); //return null; var result = new TupleModel(); var workBook = WorkbookFactory.Create(stream); var sheet = workBook.GetSheetAt(0); var rows = sheet.GetRowEnumerator(); var hasData = rows.MoveNext(); var param = new DynamicParameters(); var pars = new List <DynamicParameters>(); int skipCell = 0; if (sheet.PhysicalNumberOfRows - 2 > config.Value) { return(new BaseResponse <List <DynamicParameters> >($"Số dòng của file không được nhiều hơn {config.Value}", null, false)); } for (int i = 2; i < sheet.PhysicalNumberOfRows; i++) { try { param = new DynamicParameters(); var row = sheet.GetRow(i); if (row != null) { if (row.Cells.Count > 1) { bool isNullRow = row.Cells.Count < 20 ? true : false; if (isNullRow) { continue; } } foreach (var col in importExelFrameWork) { try { if (row.GetCell(col.Position) == null) { param.Add(col.Name, string.Empty); skipCell += 1; } else { param.Add(col.Name, BusinessExtentions.TryGetValueFromCell(row.Cells[col.Position - skipCell].ToString(), col.ValueType)); } } catch (Exception e) { param = null; } } if (param != null) { skipCell = 0; pars.Add(param); } } } catch { } } return(new BaseResponse <List <DynamicParameters> >(string.Empty, pars, true)); }
public async Task <List <HosoCourier> > ReadXlsxFile(MemoryStream stream, int createBy) { var importExelFrameWork = await _rpTailieu.GetImportTypes((int)HosoType.HosoCourrier); BusinessExtentions.GetObjectParams(importExelFrameWork); //return null; var result = new TupleModel(); var workBook = WorkbookFactory.Create(stream); var sheet = workBook.GetSheetAt(0); var rows = sheet.GetRowEnumerator(); var hasData = rows.MoveNext(); var param = new DynamicParameters(); var pars = new List <DynamicParameters>(); int count = 0; var hosos = new List <HosoCourier>(); for (int i = 1; i < sheet.PhysicalNumberOfRows; i++) { try { var row = sheet.GetRow(i); if (row != null) { if (row.Cells.Count > 1) { bool isNullRow = row.Cells.Count < 3 ? true : false; } foreach (var col in importExelFrameWork) { param.Add(col.Name, BusinessExtentions.TryGetValueFromCell(row.Cells[col.Position].ToString(), col.ValueType)); } pars.Add(param); var hoso = new HosoCourier() { CustomerName = row.Cells[0] != null ? row.Cells[0].ToString() : "", Phone = row.Cells[1] != null ? row.Cells[1].ToString() : "", Cmnd = row.Cells[2] != null ? row.Cells[2].ToString() : "", LastNote = row.Cells[4] != null ? row.Cells[4].ToString() : "", ProvinceId = row.Cells[5] != null?Convert.ToInt32(row.Cells[5].ToString()) : 0, DistrictId = row.Cells[6] != null?Convert.ToInt32(row.Cells[6].ToString()) : 0, SaleCode = row.Cells[7] != null ? row.Cells[7].ToString().Trim().ToLower() :string.Empty, Status = (int)HosoCourierStatus.New, CreatedBy = createBy }; var strAssignee = row.Cells[3] != null ? row.Cells[3].ToString() : ""; var assigneeIdsStr = string.IsNullOrWhiteSpace(strAssignee) ? new List <string>() : strAssignee.Split(',').ToList(); var assigneeIds = (assigneeIdsStr != null && assigneeIdsStr.Any()) ? assigneeIdsStr.Select(s => Convert.ToInt32(s)).ToList() : new List <int>(); hoso.AssigneeIds = assigneeIds; hoso.AssignId = assigneeIds.FirstOrDefault(); hoso.GroupId = await _rpCourierProfile.GetGroupIdByNguoiQuanLyId(hoso.AssignId); hosos.Add(hoso); count++; } } catch { return(hosos); } } return(hosos); }