0

如果我有一个像

姓名、年龄、身份证;

彼得, 35, 123456;

有没有办法让我通过在第 1 行中搜索年龄或类似方法来定位年龄是第 2 列?

4

3 回答 3

0

从 MSDN 检查 Excel 中的字符串搜索示例:http: //msdn.microsoft.com/en-us/library/e4x1k99a.aspx

于 2013-04-12T00:55:53.137 回答
0

您可以做的是遍历 excel 工作表中的每一列,并为每个名称/值对创建一个字典。例如,0 将映射到 Name,1 将映射到 age,2 将映射到 ID。从这里,您可以遍历每一行,并为该行中的每一列查找名称值对(基于列 ID)。从那里,您将能够确定年龄。

于 2013-04-02T20:08:49.177 回答
0

Is there a way for me to locate that age is column numner 2, by searching for age in row 1, or similar?

是的。假设这些行确实以您指定的格式保存,用逗号分隔,您可以轻松使用字符串的 Split 方法和 Linq 的 Select 方法:

        string row = "Name, age, ID";
        int columnNum = Array.IndexOf(row.Split(',')
                                .Select(x => x.Trim()).ToArray(), "age") + 1;

解释:

row.Split(',')- 此方法将字符串拆分为字符串数组:{ "Name", "age", "ID" }

.Select(x => x.Trim()).ToArray()- 此表达式使用 LINQ 消除列 Name 中所有不必要的空格(方法 Trim() 删除字符串开头和结尾的空格)。

Array.IndexOf- 此方法在数组中查找所需值(“年龄”)的索引。

C# 中的索引从零开始。即“姓名”的索引为0,“年龄”的索引实际上为1(以此类推)。为了解决这个问题,我只需将“IndexOf”返回的数字加 1。

我强烈推荐阅读任何 C# 基础教程。一切都在那里:)

于 2013-04-02T20:11:31.780 回答