我正在尝试使用列名获取列索引,但是如果我输入不在数据集中的列名,则会出现异常。我该如何处理?
string columnName ="ABC";
int ColumnNumber-0;
if(ws.Cells["1:1"].First(c => c.Value.ToString() == columnName ).Start.Column!=Undefined)
{
ColumnNumber=ws.Cells["1:1"].First(c => c.Value.ToString() == columnName ).Start.Column;
}
答案 0 :(得分:0)
最可能的例外情况是您致电First。找不到与Value == columnName相匹配的任何项目,并引发异常。我建议分拆if语句,以便您处理这种情况。我还建议改用FirstOrDefault,因为它只会返回null而不是抛出异常。
var myCell = ws.Cells["1:1"].FirstOrDefault(c => c.Value.ToString() == columnName );
if (myCell != null && myCell.Start.Column != Undefined)
{
ColumnNumber = myCell.Start.Column;
}