从第1行标题中查找列,并获取列号(Excel.interop?

时间:2013-04-02 19:51:56

标签: c# excel

如果我有像

这样的excelsheet

姓名,年龄,身份证明;

彼得,35岁,123456;

通过搜索第1行中的年龄或类似情况,我是否有办法找到年龄为列号为2的数字?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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#中的索引从零开始。即,“Name”的索引是0,“age”的索引实际上是1(依此类推)。要解决这个问题,我只需将“IndexOf”返回的数字加1即可。

我热烈建议阅读任何C#基础教程。它就在那里:))

答案 2 :(得分:0)

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