0

我对 C# Winform 编程非常陌生。我想从 Excel 文件中读取一列字符串。我定义了一个叫 cusip 的字符串,有些 cusip 是空的,有些是纯数字,有些是数字和字母的混合。读入每个字符串后,如果超过 8 个字符,我只想保留 8 个字符,如果字符串为空,我想将其命名为“000000cm”。最后一步是将每个字符串添加到列表中,然后执行其他操作。

在这行代码中,我不断收到错误消息说“对象引用未设置为对象的实例”:

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);
4

3 回答 3

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);
于 2013-10-17T12:58:43.303 回答
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);
于 2013-10-17T13:02:26.727 回答
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);
于 2013-10-17T13:05:22.730 回答