2013-10-17 27 views
0

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

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

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

CUSIP似乎为空。 – Gandarez

回答

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); 
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); 
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); 
相关问题