在Excel中使用不同types的信息在每一行中读取一列

我想用我编写的程序读取Excel文档,并根据读取的信息,更改我的用户界面上的某些字段,我遇到了一个有趣的问题。

我的一个专栏有可能保存4种不同types的数据。 行中的每个单元格都可能包含一个数字,一个以文本或文本forms存储的数字。

这是我用来阅读本专栏的部分代码:

try { string dtTerritory = dt.Rows[0].Field<string>("Territory"); cmbTerritory.SelectedItem = dtTerritory; territory = dtTerritory; } catch { double dtTerritory = dt.Rows[0].Field<double>("Territory"); cmbTerritory.SelectedItem = dtTerritory.ToString(); territory = dtTerritory.ToString(); } 

我遇到的问题是读取以文本forms存储的数字,问题是,如果数字以Excel文档forms存储在Excel工作表中,则始终以3个字符存储。 所以如果数字是3,那么如果它是46,则它被存储为“3”(3之后2个空格),它被存储为“46”(46之后1个空格)。

所以我基本上是寻找最好的解决scheme,我可以让我的程序忽略号码后发生的空间。 有任何想法吗?

我只是读取数据作为文本,然后做处理,看看你是否可以将其转换为数字或不。

所以在第一个例子中,你需要修剪文本:

 dtTerritory = dtTerritory.Trim(); 

然后检查它是否为空string:

 if (!string.IsEmptyOrWhileSpace(dtTerritory)) { // Process further } 

那么你的进一步处理是试图parsing文本:

 double value; if (double.TryParse(dtTerritory, out value)) { // do your double value handling here. }