Я работаю с LinqToExcel для импорта данных из Excel и отображения в BD. Мой Excel сделан из 2 столбцов (вертикальный и горизонтальный) по горизонтали, у меня есть UserName и по вертикали слева, у меня есть JobsNames, и информация о часах работы на пользователя.
Теперь я хочу получить часы второго имени пользователя. Потому что, когда foreach достигает конца, я получаю только часы первого столбца.
Как я могу это сделать?
Excel
TBL_Jobs
var ExcelList = from model in excelFile.WorksheetRange<SP_ExtrajobsViewModel>("A3", "C18", sheetName) select model; // Var criada para ir buscar a tabela inteira do excel
var colNames = excelFile.GetColumnNames(sheetName, "B2:C2").ToList(); // vai buscar o nome dos users na horizontal
foreach (var item2 in colNames)
{
foreach (var model in ExcelList) // "skip(1) para ignorar a linha lida do header pois a segunda linha é que faz match com o modelo
{
try
{
if (model.Scope2UserFunctionScope != null)
{
var useriditem = _context.TBL_UserFunctionScope.Where(m => m.Name == model.Scope2UserFunctionScope).FirstOrDefault().FunctionScopeID;
//var UserIDitem2 = 3081;
TBL_ExtraJobs item = new TBL_ExtraJobs();
if (model.Hours == null)
{
item.Hours = 0;
item.Remaining = 0;
}
else
{
item.Hours = (decimal)model.Hours;
item.Remaining = (decimal)model.Hours;
}
item.FunctionScopeID = useriditem;
item.UserID = _context.TBL_User.Where(m=> m.Username.Equals(item2)).Select(o => o.UserID).FirstOrDefault();
item.Day = DateTime.UtcNow;
item.Description = "ola";
item.CreateDate = DateTime.UtcNow;
item.CreateBy = userID;
_context.TBL_ExtraJobs.Add(item);
_context.SaveChanges();
}
else
{
//data.Add("<ul>");
//if (a.Month != null) data.Add("<li> Month is required</li>");
//if (a.UserID != null) data.Add("<li> Address is required</li>");
//if (a.GrossMargin != null) data.Add("<li>ContactNo is required</li>");
//if (a.SalesObjective != 0) data.Add("<li>ContactNo is required</li>");
//if (a.ConversionRate != 0) data.Add("<li>ContactNo is required</li>");
//data.Add("</ul>");
//data.ToArray();
//return Json(data, JsonRequestBehavior.AllowGet);
}
}