[英]Data validation for each cell to check whether the value is available or not using EPplus
我正在使用Epplus上載文件。我有兩張.xlsx格式的表格。我要確保每個單元格都有值。例如在excel中,我有下拉框。如果用戶在第一張和第二張表格中有詳細信息是空的,但是這個空的工作表只有一個值,通過使用此下拉菜單錯誤地將其添加到工作表中。因此,在此階段,進入此循環將顯示對象空引用錯誤
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);
}
}
如何驗證所有列和行都有值
在循環中,檢查單元格是否不為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返回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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.