在Excel中读取每行具有不同类型信息的列

本文关键字:同类型 信息 Excel 读取 | 更新日期: 2023-09-27 18:23:35

我正试图用我编写的程序读取Excel文档,根据读取的信息,更改UI上的某些字段,我遇到了一个有趣的问题。

我的一个专栏可能包含4种不同类型的数据。行中的每个单元格都可能包含一个数字,一个以文本、文本或什么都不存储的数字。

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

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();
}

我遇到的问题是读取一个以文本形式存储的数字,问题是,当数字以文本形式保存在Excel工作表上时,它总是以3个字符的形式存储。因此,如果数字是3,则存储为"3"(3后面有2个空格);如果数字是46,则存储"46"(46后面有1个空格)。

因此,我本质上是在寻找最好的解决方案,如何让我的程序忽略数字后面的空格。有什么想法吗?

在Excel中读取每行具有不同类型信息的列

我只是将数据读取为文本,然后对其进行处理,看看是否可以将其转换为数字。

因此,在第一个例子中,您需要修剪文本:

dtTerritory = dtTerritory.Trim();

然后检查它是否为空字符串:

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

然后,您的进一步处理是尝试解析文本:

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