嘿所有我正在使用下面的代码,以便找出我正在解析的Excel工作表中的单元格是否有注释。
int columnCount = ws.UsedRange.Columns.Count;
Dictionary<string,bool> storedValidaters = new Dictionary<string, bool>();
for (int c = 1; c < columnCount; c++)
{
if (ws.Cells[2, c].Comment.Shape.AlternativeText != null)
{
string columnName = ws.Cells[2, c].Value2.ToString();
string myComment = ws.Cells[2, c].Comment.Shape.AlternativeText.ToString().Replace("Text Box: ", "");
storedValidaters.Add(columnName, true);
} else {
//the value is null so its false
string columnName = ws.Cells[2, c].Value2.ToString();
storedValidaters.Add(columnName, false);
}
}
它会循环几次但是一旦它到达没有评论的单元格,它就会大便。
错误无法对空引用执行运行时绑定。
我做了一些搜索,以确定是否有其他人有工作代码来检查 null ,但一直无法找到一个有效的例子。
任何人都知道这样做的方法吗?
答案 0 :(得分:1)
我建议改变:
Comment.Shape.AlternativeText
为:
Comment?.Shape?.AlternativeText
null conditional operator将确保代码将继续按预期工作,无论Comment
为空,或Shape
为空还是AlternativeText
为空