使用 EPplus 对每个单元格进行数据验证以检查该值是否可用

Data validation for each cell to check whether the value is available or not using EPplus

我正在使用 Epplus 上传 file.I 在 .xlsx 中有两个 sheet format.I 想要确保每个单元格在我的 [= 中都有 value.For 示例21=] 我有下拉菜单 box.If 一个用户在第一个 sheet 和第二个 sheet 中有详细信息 empty.But 这个空的 sheet 只有一个值被添加到sheet 在这个阶段错误地使用了这个 dropdown.So 进入这个循环时会显示对象空引用错误

    for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
     {

         if (int.TryParse(s.Cells[rowIterator, 1].Value.ToString(), out n) && int.TryParse(s.Cells[rowIterator, 2].Value.ToString(), out n))
        {
          Pss.Pbr = Convert.ToInt32(s.Cells[rowIterator, 1].Value);
          Pss.Amount = Convert.ToInt32(s.Cells[rowIterator, 2].Value);
         Ps.Add(Pss);

        }
}

如何验证所有列和行都有值

在循环中,检查cell是否不为null且不为空,像这样:

bool allRangeHasValue=true;
for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
{
    for(int col =1;col<=s.Dimension.End.Column;col++)
    {

      if(String.IsNullOrWhiteSpace(s.Cells[rowIterator, col]?.Value?.ToString())
      {
          allRangeHasValue=false;
          break;
      }
    }
    if(!allRangeHasValue)
    {
      break;
    }
}

编辑: 根据您的评论,您可以执行以下操作: Edit2:由于您使用的是 TryParse,因此无需再次解析,TryParse returns out 变量中的值。

for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
 {
     int n1;
     int n2;
     if (!string.IsNullOrWhiteSpace(s.Cells[rowIterator, 1]?.Value?.ToString()) &&
         !string.IsNullOrWhiteSpace(s.Cells[rowIterator, 2]?.Value?.ToString()) &&
         int.TryParse(s.Cells[rowIterator, 1].Value.ToString(), out n1) && 
         int.TryParse(s.Cells[rowIterator, 2].Value.ToString(), out n2))
    {
      Pss.Pbr = n1;
      Pss.Amount = n2;
      Ps.Add(Pss);

    }
}