使用 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);
}
}
我正在使用 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);
}
}