我是C#Winform编程的新手。我想从Excel文件中读取一列字符串。我定义了一个名为cusip的字符串,一些cusip是空的,一些是纯数字,一些是数字和字母的混合。在读取每个字符串后,如果长度超过8,我只想保留8个字符,如果字符串为空,我想将其命名为“000000cm”。最后一步是将每个字符串添加到List中,然后执行其他操作。
我在这行代码中不断收到错误消息“对象引用未设置为对象的实例”:
cusip.Substring(0,7).ToString();
这是代码快照:
string cusip;
cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2);
if (cusip != "")
{
cusip.Substring(0,7).ToString();
}
else cusip = "000000cm";
cusipList.Add(cusip);
答案 0 :(得分:2)
行cusip.Substring(0,7).ToString();
不会更改cusip
,空检查也可能会导致问题。
将代码更改为:
string cusip;
cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2);
if (!string.IsNullOrEmpty(cusip))
{
cusip = (cusip.Length > 7) ? cusip.Substring(0,8) : cusip;
} else {
cusip = "000000cm";
}
cusipList.Add(cusip);
答案 1 :(得分:0)
试试这个:
string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2);
if (!string.IsNullOrEmpty(cusip))
{
if (cusip.Length > 8)
{
cusip = cusip.Substring(0,8);
}
}
else
{
cusip = "000000cm";
}
cusipList.Add(cusip);
答案 2 :(得分:0)
尝试
string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2)??"";
if (!string.IsNullOrEmpty(cusip))
{
cusip = cusip.Substring(0,8);
}
else
{
cusip = "000000cm";
}
cusipList.Add(cusip);